diff --git a/lib/di.dart b/lib/di.dart index 7a7621203..a5c7702d8 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -500,8 +500,11 @@ Future setup( getIt.registerFactory(() => OtherSettingsPage(getIt.get())); getIt.registerFactoryParam( - (WalletType? type, _) => - NodeCreateOrEditViewModel(_nodeSource, type ?? getIt.get().wallet!.type)); + (WalletType? type, _) => NodeCreateOrEditViewModel( + _nodeSource, + type ?? getIt.get().wallet!.type, + getIt.get(), + )); getIt.registerFactory( () => NodeCreateOrEditPage(getIt.get())); diff --git a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart index e0dd1a729..ff1c83f90 100644 --- a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart +++ b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart @@ -10,9 +10,9 @@ import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; class AdvancedPrivacySettingsPage extends BasePage { - AdvancedPrivacySettingsPage(this.privacySettingsViewModel, this.nodeViewModel); + AdvancedPrivacySettingsPage(this.advancedPrivacySettingsViewModel, this.nodeViewModel); - final AdvancedPrivacySettingsViewModel privacySettingsViewModel; + final AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel; final NodeCreateOrEditViewModel nodeViewModel; @override @@ -20,7 +20,7 @@ class AdvancedPrivacySettingsPage extends BasePage { @override Widget body(BuildContext context) => - AdvancedPrivacySettingsBody(privacySettingsViewModel, nodeViewModel); + AdvancedPrivacySettingsBody(advancedPrivacySettingsViewModel, nodeViewModel); } class AdvancedPrivacySettingsBody extends StatefulWidget { @@ -78,7 +78,7 @@ class _AdvancedPrivacySettingsBodyState extends State _nodeSource; + final SettingsStore _settingsStore; @action void reset() { @@ -75,13 +77,18 @@ abstract class NodeCreateOrEditViewModelBase with Store { } @action - Future save() async { + Future save({bool saveAsCurrent = false}) async { try { state = IsExecutingState(); final node = Node(uri: uri, type: _walletType, login: login, password: password, useSSL: useSSL, trusted: trusted); await _nodeSource.add(node); + + if (saveAsCurrent) { + _settingsStore.nodes[_walletType] = node; + } + state = ExecutedSuccessfullyState(); } catch (e) { state = FailureState(e.toString());