diff options
Diffstat (limited to 'frontend/lib/services/shared_preferences_service.dart')
-rw-r--r-- | frontend/lib/services/shared_preferences_service.dart | 106 |
1 files changed, 106 insertions, 0 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); + } +} |