diff options
author | hunteraraujo <hunter_araujo@msn.com> | 2023-10-10 11:12:43 -0700 |
---|---|---|
committer | hunteraraujo <hunter_araujo@msn.com> | 2023-10-10 11:12:43 -0700 |
commit | 9b8094329d18e49963cc6514a8796fbca5d6a276 (patch) | |
tree | c77b70311c4466355c55592b554b816f4f425874 /frontend | |
parent | Gate test suites from the task view based off isDeveloperModeEnabled flag (diff) | |
download | Auto-GPT-9b8094329d18e49963cc6514a8796fbca5d6a276.tar.gz Auto-GPT-9b8094329d18e49963cc6514a8796fbca5d6a276.tar.bz2 Auto-GPT-9b8094329d18e49963cc6514a8796fbca5d6a276.zip |
Add SharedPreferencesService
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/lib/services/shared_preferences_service.dart | 106 | ||||
-rw-r--r-- | frontend/lib/viewmodels/settings_viewmodel.dart | 1 |
2 files changed, 106 insertions, 1 deletions
diff --git a/frontend/lib/services/shared_preferences_service.dart b/frontend/lib/services/shared_preferences_service.dart new file mode 100644 index 000000000..df1003169 --- /dev/null +++ b/frontend/lib/services/shared_preferences_service.dart @@ -0,0 +1,106 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPreferencesService { + SharedPreferencesService._privateConstructor(); + + static final SharedPreferencesService instance = + SharedPreferencesService._privateConstructor(); + + Future<SharedPreferences> _prefs = SharedPreferences.getInstance(); + + /// Sets a boolean [value] for the given [key] in the shared preferences. + /// + /// Example: + /// ```dart + /// await prefsService.setBool('isLoggedIn', true); + /// ``` + Future<void> setBool(String key, bool value) async { + final prefs = await _prefs; + prefs.setBool(key, value); + } + + /// Sets a string [value] for the given [key] in the shared preferences. + /// + /// Example: + /// ```dart + /// await prefsService.setString('username', 'Alice'); + /// ``` + Future<void> setString(String key, String value) async { + final prefs = await _prefs; + prefs.setString(key, value); + } + + /// Sets an integer [value] for the given [key] in the shared preferences. + /// + /// Example: + /// ```dart + /// await prefsService.setInt('age', 30); + /// ``` + Future<void> setInt(String key, int value) async { + final prefs = await _prefs; + prefs.setInt(key, value); + } + + /// Sets a list of strings [value] for the given [key] in the shared preferences. + /// + /// Example: + /// ```dart + /// await prefsService.setStringList('favorites', ['Apples', 'Bananas']); + /// ``` + Future<void> setStringList(String key, List<String> value) async { + final prefs = await _prefs; + prefs.setStringList(key, value); + } + + /// Retrieves a boolean value for the given [key] from the shared preferences. + /// + /// Returns `null` if the key does not exist. + /// + /// Example: + /// ```dart + /// bool? isLoggedIn = await prefsService.getBool('isLoggedIn'); + /// ``` + Future<bool?> getBool(String key) async { + final prefs = await _prefs; + return prefs.getBool(key); + } + + /// Retrieves a string value for the given [key] from the shared preferences. + /// + /// Returns `null` if the key does not exist. + /// + /// Example: + /// ```dart + /// String? username = await prefsService.getString('username'); + /// ``` + Future<String?> getString(String key) async { + final prefs = await _prefs; + return prefs.getString(key); + } + + /// Retrieves an integer value for the given [key] from the shared preferences. + /// + /// Returns `null` if the key does not exist. + /// + /// Example: + /// ```dart + /// int? age = await prefsService.getInt('age'); + /// ``` + Future<int?> getInt(String key) async { + final prefs = await _prefs; + return prefs.getInt(key); + } + + /// Retrieves a list of strings for the given [key] from the shared preferences. + /// + /// Returns `null` if the key does not exist. + /// + /// Example: + /// ```dart + /// List<String>? favorites = await prefsService.getStringList('favorites'); + /// ``` + Future<List<String>?> getStringList(String key) async { + final prefs = await _prefs; + return prefs.getStringList(key); + } +} diff --git a/frontend/lib/viewmodels/settings_viewmodel.dart b/frontend/lib/viewmodels/settings_viewmodel.dart index cb63cb694..74b55f7e6 100644 --- a/frontend/lib/viewmodels/settings_viewmodel.dart +++ b/frontend/lib/viewmodels/settings_viewmodel.dart @@ -30,7 +30,6 @@ class SettingsViewModel extends ChangeNotifier { Future<void> _loadPreferences() async { final prefs = await SharedPreferences.getInstance(); _isDarkModeEnabled = prefs.getBool('isDarkModeEnabled') ?? false; - // TODO: We should make this disable test suites _isDeveloperModeEnabled = prefs.getBool('isDeveloperModeEnabled') ?? true; _baseURL = prefs.getString('baseURL') ?? 'http://127.0.0.1:8000/ap/v1'; _restApiUtility.updateBaseURL(_baseURL); |