diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index ef83104d..36928f08 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -411,6 +411,7 @@ class ServerInstallationCubit extends Cubit { case RecoveryStep.recoveryKey: case RecoveryStep.newDeviceKey: case RecoveryStep.oldToken: + case RecoveryStep.hetznerToken: emit( dataState.copyWith( currentStep: RecoveryStep.selecting, @@ -425,6 +426,23 @@ class ServerInstallationCubit extends Cubit { ), ); break; + case RecoveryStep.cloudflareToken: + repository.deleteDomain(); + repository.deleteServerDetails(); + emit( + dataState.copyWith( + currentStep: RecoveryStep.serverSelection, + ), + ); + break; + case RecoveryStep.backblazeToken: + repository.deleteBackblazeKey(); + emit( + dataState.copyWith( + currentStep: RecoveryStep.cloudflareToken, + ), + ); + break; // We won't revert steps after client is authorized default: break; diff --git a/lib/logic/cubit/server_installation/server_installation_repository.dart b/lib/logic/cubit/server_installation/server_installation_repository.dart index 2a0f84f4..e6eaf3c6 100644 --- a/lib/logic/cubit/server_installation/server_installation_repository.dart +++ b/lib/logic/cubit/server_installation/server_installation_repository.dart @@ -603,6 +603,11 @@ class ServerInstallationRepository { await getIt().storeServerDetails(serverDetails); } + Future deleteServerDetails() async { + await box.delete(BNames.serverDetails); + getIt().init(); + } + Future saveHetznerKey(final String key) async { print('saved'); await getIt().storeHetznerKey(key); @@ -619,10 +624,20 @@ class ServerInstallationRepository { await getIt().storeBackblazeCredential(backblazeCredential); } + Future deleteBackblazeKey() async { + await box.delete(BNames.backblazeCredential); + getIt().init(); + } + Future saveCloudFlareKey(final String key) async { await getIt().storeCloudFlareKey(key); } + Future deleteCloudFlareKey() async { + await box.delete(BNames.cloudFlareKey); + getIt().init(); + } + Future saveDomain(final ServerDomain serverDomain) async { await getIt().storeServerDomain(serverDomain); } diff --git a/lib/logic/get_it/api_config.dart b/lib/logic/get_it/api_config.dart index 3f3e5ac0..ec2feb55 100644 --- a/lib/logic/get_it/api_config.dart +++ b/lib/logic/get_it/api_config.dart @@ -34,7 +34,6 @@ class ApiConfigModel { Future storeBackblazeCredential(final BackblazeCredential value) async { await _box.put(BNames.backblazeCredential, value); - _backblazeCredential = value; } @@ -64,7 +63,6 @@ class ApiConfigModel { void init() { _hetznerKey = _box.get(BNames.hetznerKey); - _cloudFlareKey = _box.get(BNames.cloudFlareKey); _backblazeCredential = _box.get(BNames.backblazeCredential); _serverDomain = _box.get(BNames.serverDomain); diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart index 2b558727..02b68acf 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart @@ -28,6 +28,8 @@ class RecoveryConfirmBackblaze extends StatelessWidget { heroTitle: 'recovering.confirm_backblaze'.tr(), heroSubtitle: 'recovering.confirm_backblaze_description'.tr(), hasBackButton: true, + onBackButtonPressed: + context.read().revertRecoveryStep, hasFlashButton: false, children: [ CubitFormTextField( diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart b/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart index 8cbdbe6c..0e12b51e 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart @@ -31,6 +31,8 @@ class RecoveryConfirmCloudflare extends StatelessWidget { ), hasBackButton: true, hasFlashButton: false, + onBackButtonPressed: + context.read().revertRecoveryStep, children: [ CubitFormTextField( formFieldCubit: context.read().apiKey, diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_server.dart b/lib/ui/pages/setup/recovering/recovery_confirm_server.dart index 110425ef..19fcbb6b 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_server.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_server.dart @@ -39,6 +39,8 @@ class _RecoveryConfirmServerState extends State { ? 'recovering.choose_server_description'.tr() : 'recovering.confirm_server_description'.tr(), hasBackButton: true, + onBackButtonPressed: + context.read().revertRecoveryStep, hasFlashButton: false, children: [ FutureBuilder>( diff --git a/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart b/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart index e1812b32..36b5f130 100644 --- a/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart +++ b/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart @@ -32,6 +32,8 @@ class RecoveryHetznerConnected extends StatelessWidget { ), hasBackButton: true, hasFlashButton: false, + onBackButtonPressed: + context.read().revertRecoveryStep, children: [ CubitFormTextField( formFieldCubit: context.read().apiKey,