Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import 'pages/pinpad_views/create_pin_view.dart';
import 'pages/pinpad_views/lock_screen_view.dart';
import 'pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart';
import 'pages_desktop_specific/password/desktop_login_view.dart';
import 'providers/db/main_db_provider.dart';
import 'providers/desktop/storage_crypto_handler_provider.dart';
import 'providers/global/auto_swb_service_provider.dart';
import 'providers/global/base_currencies_provider.dart';
Expand Down Expand Up @@ -357,7 +356,7 @@ class _MaterialAppWithThemeState extends ConsumerState<MaterialAppWithTheme>
}
}

Future<void> load() async {
Future<void> load(bool loadWallets) async {
try {
if (didLoad) {
return;
Expand Down Expand Up @@ -387,12 +386,15 @@ class _MaterialAppWithThemeState extends ConsumerState<MaterialAppWithTheme>
prefs: ref.read(prefsChangeNotifierProvider),
);
ref.read(priceAnd24hChangeNotifierProvider).start(true);
await ref
.read(pWallets)
.load(
ref.read(prefsChangeNotifierProvider),
ref.read(mainDBProvider),
);
if (loadWallets) {
await ref
.read(pWallets)
.load(
ref.read(prefsChangeNotifierProvider),
ref.read(mainDBProvider),
false,
);
}
loadingCompleter.complete();
// TODO: this should probably run unawaited. Keep commented out for now as proper community nodes ui hasn't been implemented yet
// unawaited(_nodeService.updateCommunityNodes());
Expand Down Expand Up @@ -445,6 +447,13 @@ class _MaterialAppWithThemeState extends ConsumerState<MaterialAppWithTheme>

@override
void initState() {
if (Util.isDesktop) {
// set to false for desktop
WidgetsBinding.instance.addPostFrameCallback((_) {
ref.read(pDuress.notifier).state = false;
});
}

String themeId;
if (ref.read(prefsChangeNotifierProvider).enableSystemBrightness) {
final brightness = WidgetsBinding.instance.window.platformBrightness;
Expand Down Expand Up @@ -781,7 +790,7 @@ class _MaterialAppWithThemeState extends ConsumerState<MaterialAppWithTheme>

return DesktopLoginView(
startupWalletId: startupWalletId,
load: load,
load: () => load(true),
);
} else {
return const IntroView();
Expand All @@ -792,7 +801,7 @@ class _MaterialAppWithThemeState extends ConsumerState<MaterialAppWithTheme>
},
)
: FutureBuilder(
future: load(),
future: load(false),
builder: (
BuildContext context,
AsyncSnapshot<void> snapshot,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,9 @@ import '../../../../../app_config.dart';
import '../../../../../frost_route_generator.dart';
import '../../../../../notifications/show_flush_bar.dart';
import '../../../../../pages_desktop_specific/desktop_home_view.dart';
import '../../../../../providers/db/main_db_provider.dart';
import '../../../../../providers/frost_wallet/frost_wallet_providers.dart';
import '../../../../../providers/global/node_service_provider.dart';
import '../../../../../providers/global/prefs_provider.dart';
import '../../../../../providers/global/secure_store_provider.dart';
import '../../../../../providers/global/wallets_provider.dart';
import '../../../../../providers/providers.dart';
import '../../../../../services/frost.dart';
import '../../../../../themes/stack_colors.dart';
import '../../../../../utilities/assets.dart';
Expand Down Expand Up @@ -43,7 +40,8 @@ class FrostCreateStep5 extends ConsumerStatefulWidget {
}

class _FrostCreateStep5State extends ConsumerState<FrostCreateStep5> {
static const _warning = "These are your private keys. Please back them up, "
static const _warning =
"These are your private keys. Please back them up, "
"keep them safe and never share it with anyone. Your private keys are the"
" only way you can access your funds if you forget PIN, lose your phone, "
"etc. ${AppConfig.prefix} does not keep nor is able to restore your private keys"
Expand Down Expand Up @@ -79,35 +77,30 @@ class _FrostCreateStep5State extends ConsumerState<FrostCreateStep5> {
child: Text(
_warning,
style: STextStyles.w500_14(context).copyWith(
color: Theme.of(context)
.extension<StackColors>()!
.warningForeground,
color:
Theme.of(
context,
).extension<StackColors>()!.warningForeground,
),
),
),
const SizedBox(height: 12),
DetailItem(
title: "Multisig Config",
detail: multisigConfig,
button: Util.isDesktop
? IconCopyButton(
data: multisigConfig,
)
: SimpleCopyButton(
data: multisigConfig,
),
button:
Util.isDesktop
? IconCopyButton(data: multisigConfig)
: SimpleCopyButton(data: multisigConfig),
),
const SizedBox(height: 12),
DetailItem(
title: "Keys",
detail: serializedKeys,
button: Util.isDesktop
? IconCopyButton(
data: serializedKeys,
)
: SimpleCopyButton(
data: serializedKeys,
),
button:
Util.isDesktop
? IconCopyButton(data: serializedKeys)
: SimpleCopyButton(data: serializedKeys),
),
if (!Util.isDesktop) const Spacer(),
const SizedBox(height: 12),
Expand All @@ -133,10 +126,7 @@ class _FrostCreateStep5State extends ConsumerState<FrostCreateStep5> {
useSafeArea: true,
builder: (ctx) {
return const Center(
child: LoadingIndicator(
width: 50,
height: 50,
),
child: LoadingIndicator(width: 50, height: 50),
);
},
),
Expand Down Expand Up @@ -177,6 +167,13 @@ class _FrostCreateStep5State extends ConsumerState<FrostCreateStep5> {
isar: ref.read(mainDBProvider).isar,
);

if (ref.read(pDuress)) {
await wallet.info.updateDuressVisibilityStatus(
isDuressVisible: true,
isar: ref.read(mainDBProvider).isar,
);
}

ref.read(pWallets).addWallet(wallet);

// pop progress dialog
Expand All @@ -191,9 +188,7 @@ class _FrostCreateStep5State extends ConsumerState<FrostCreateStep5> {

if (Util.isDesktop) {
nav.popUntil(
ModalRoute.withName(
DesktopHomeView.routeName,
),
ModalRoute.withName(DesktopHomeView.routeName),
);
} else {
unawaited(
Expand All @@ -219,7 +214,7 @@ class _FrostCreateStep5State extends ConsumerState<FrostCreateStep5> {
);
}
} catch (e, s) {
Logging.instance.f("$e\n$s", error: e, stackTrace: s,);
Logging.instance.f("$e\n$s", error: e, stackTrace: s);

// pop progress dialog
if (context.mounted && !progressPopped) {
Expand Down
114 changes: 47 additions & 67 deletions lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../../../frost_route_generator.dart';
import '../../../../pages_desktop_specific/desktop_home_view.dart';
import '../../../../pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart';
import '../../../../providers/db/main_db_provider.dart';
import '../../../../providers/frost_wallet/frost_wallet_providers.dart';
import '../../../../providers/global/node_service_provider.dart';
import '../../../../providers/global/prefs_provider.dart';
import '../../../../providers/global/secure_store_provider.dart';
import '../../../../providers/global/wallets_provider.dart';
import '../../../../providers/providers.dart';
import '../../../../utilities/logger.dart';
import '../../../../utilities/show_loading.dart';
import '../../../../utilities/text_styles.dart';
Expand Down Expand Up @@ -68,12 +65,20 @@ class _FrostReshareStep5State extends ConsumerState<FrostReshareStep5> {
isar: ref.read(mainDBProvider).isar,
);

if (ref.read(pDuress)) {
await wallet.info.updateDuressVisibilityStatus(
isDuressVisible: true,
isar: ref.read(mainDBProvider).isar,
);
}

ref.read(pWallets).addWallet(wallet);
} else {
wallet = ref
.read(pWallets)
.getWallet(ref.read(pFrostScaffoldArgs)!.walletId!)
as BitcoinFrostWallet;
wallet =
ref
.read(pWallets)
.getWallet(ref.read(pFrostScaffoldArgs)!.walletId!)
as BitcoinFrostWallet;
}

if (mounted) {
Expand All @@ -96,34 +101,32 @@ class _FrostReshareStep5State extends ConsumerState<FrostReshareStep5> {
if (mounted) {
ref.read(pFrostResharingData).reset();
ref.read(pFrostScaffoldCanPopDesktop.notifier).state = true;
ref.read(pFrostScaffoldArgs)?.parentNav.popUntil(
ModalRoute.withName(
_popUntilPath,
),
);
ref
.read(pFrostScaffoldArgs)
?.parentNav
.popUntil(ModalRoute.withName(_popUntilPath));
}
}
} catch (e, s) {
Logging.instance.f("$e\n$s", error: e, stackTrace: s,);
Logging.instance.f("$e\n$s", error: e, stackTrace: s);
if (mounted) {
await showDialog<void>(
context: context,
builder: (_) => FrostErrorDialog(
title: "Error",
message: e.toString(),
),
builder:
(_) => FrostErrorDialog(title: "Error", message: e.toString()),
);
}
} finally {
_buttonLock = false;
}
}

String get _popUntilPath => isNew
? Util.isDesktop
? DesktopHomeView.routeName
: HomeView.routeName
: Util.isDesktop
String get _popUntilPath =>
isNew
? Util.isDesktop
? DesktopHomeView.routeName
: HomeView.routeName
: Util.isDesktop
? DesktopWalletView.routeName
: WalletView.routeName;

Expand All @@ -134,7 +137,8 @@ class _FrostReshareStep5State extends ConsumerState<FrostReshareStep5> {
ref.read(pFrostResharingData).newWalletData!.serializedKeys;
reshareId = ref.read(pFrostResharingData).newWalletData!.resharedId;

isNew = ref.read(pFrostResharingData).incompleteWallet != null &&
isNew =
ref.read(pFrostResharingData).incompleteWallet != null &&
ref.read(pFrostResharingData).incompleteWallet!.walletId ==
ref.read(pFrostScaffoldArgs)!.walletId!;

Expand All @@ -151,66 +155,42 @@ class _FrostReshareStep5State extends ConsumerState<FrostReshareStep5> {
"Ensure your reshare ID matches that of each other participant",
style: STextStyles.pageTitleH2(context),
),
const SizedBox(
height: 12,
),
const SizedBox(height: 12),
DetailItem(
title: "ID",
detail: reshareId,
button: Util.isDesktop
? IconCopyButton(
data: reshareId,
)
: SimpleCopyButton(
data: reshareId,
),
),
const SizedBox(
height: 12,
),
const SizedBox(
height: 12,
button:
Util.isDesktop
? IconCopyButton(data: reshareId)
: SimpleCopyButton(data: reshareId),
),
const SizedBox(height: 12),
const SizedBox(height: 12),
Text(
"Back up your keys and config",
style: STextStyles.pageTitleH2(context),
),
const SizedBox(
height: 12,
),
const SizedBox(height: 12),
DetailItem(
title: "Config",
detail: config,
button: Util.isDesktop
? IconCopyButton(
data: config,
)
: SimpleCopyButton(
data: config,
),
),
const SizedBox(
height: 12,
button:
Util.isDesktop
? IconCopyButton(data: config)
: SimpleCopyButton(data: config),
),
const SizedBox(height: 12),
DetailItem(
title: "Keys",
detail: serializedKeys,
button: Util.isDesktop
? IconCopyButton(
data: serializedKeys,
)
: SimpleCopyButton(
data: serializedKeys,
),
button:
Util.isDesktop
? IconCopyButton(data: serializedKeys)
: SimpleCopyButton(data: serializedKeys),
),
if (!Util.isDesktop) const Spacer(),
const SizedBox(
height: 12,
),
PrimaryButton(
label: "Confirm",
onPressed: _onPressed,
),
const SizedBox(height: 12),
PrimaryButton(label: "Confirm", onPressed: _onPressed),
],
),
);
Expand Down
Loading
Loading