Преглед на файлове

store 2FA status in shared preference

ashilkn преди 2 години
родител
ревизия
5fec54736e
променени са 2 файла, в които са добавени 22 реда и са изтрити 3 реда
  1. 18 0
      lib/core/configuration.dart
  2. 4 3
      lib/events/two_factor_status_change_event.dart

+ 18 - 0
lib/core/configuration.dart

@@ -40,6 +40,7 @@ import 'package:photos/services/memories_service.dart';
 import 'package:photos/services/search_service.dart';
 // ignore: import_of_legacy_library_into_null_safe
 import 'package:photos/services/sync_service.dart';
+import 'package:photos/services/user_service.dart';
 import 'package:photos/utils/crypto_util.dart';
 import 'package:photos/utils/validator_util.dart';
 import 'package:shared_preferences/shared_preferences.dart';
@@ -68,6 +69,8 @@ class Configuration {
   static const keyShouldShowLockScreen = "should_show_lock_screen";
   static const keyHasSelectedAnyBackupFolder =
       "has_selected_any_folder_for_backup";
+  static const keyHasEnabledTwoFactor = "has_enabled_two_factor";
+
   static const lastTempFolderClearTimeKey = "last_temp_folder_clear_time";
   static const nameKey = "name";
   static const secretKeyKey = "secret_key";
@@ -148,6 +151,7 @@ class Configuration {
       await _migrateSecurityStorageToFirstUnlock();
     }
     SuperLogging.setUserID(await _getOrCreateAnonymousUserID());
+    setTwoFactor(fetchTwoFactorStatus: true);
   }
 
   Future<void> logout({bool autoLogout = false}) async {
@@ -608,6 +612,20 @@ class Configuration {
     return _preferences.getBool(hasSelectedAllFoldersForBackupKey) ?? false;
   }
 
+  Future<void> setTwoFactor({
+    bool value = false,
+    bool fetchTwoFactorStatus = false,
+  }) async {
+    if (fetchTwoFactorStatus) {
+      value = await UserService.instance.fetchTwoFactorStatus();
+    }
+    _preferences.setBool(keyHasEnabledTwoFactor, value);
+  }
+
+  bool? hasEnabledTwoFactor() {
+    return _preferences.getBool(keyHasEnabledTwoFactor);
+  }
+
   Future<void> setSelectAllFoldersForBackup(bool value) async {
     await _preferences.setBool(hasSelectedAllFoldersForBackupKey, value);
   }

+ 4 - 3
lib/events/two_factor_status_change_event.dart

@@ -1,9 +1,10 @@
-
-
+import 'package:photos/core/configuration.dart';
 import 'package:photos/events/event.dart';
 
 class TwoFactorStatusChangeEvent extends Event {
   final bool status;
 
-  TwoFactorStatusChangeEvent(this.status);
+  TwoFactorStatusChangeEvent(this.status) {
+    Configuration.instance.setTwoFactor(value: status);
+  }
 }