From 5c0eba2ed1d29ade1eca2bb7e9df2c1c6e7f5d2a Mon Sep 17 00:00:00 2001 From: Yashas H Majmudar Date: Sun, 23 Mar 2025 14:25:06 -0400 Subject: [PATCH] feat: preference helper singleton for easy access for preferences --- lib/helpers/shared_preferences.dart | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lib/helpers/shared_preferences.dart diff --git a/lib/helpers/shared_preferences.dart b/lib/helpers/shared_preferences.dart new file mode 100644 index 00000000..3c02bd87 --- /dev/null +++ b/lib/helpers/shared_preferences.dart @@ -0,0 +1,26 @@ +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:shared_preferences/util/legacy_to_async_migration_util.dart'; + +class PreferenceHelper { + SharedPreferencesAsync _asyncPref = SharedPreferencesAsync(); + + PreferenceHelper._instantiate(); + + static final PreferenceHelper _instance = PreferenceHelper._instantiate(); + + static SharedPreferencesAsync get asyncPref => _instance._asyncPref; + + static PreferenceHelper get instance => _instance; + + Future migrationSupportFunctionForSharedPreferences() async { + const SharedPreferencesOptions sharedPreferencesOptions = + SharedPreferencesOptions(); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + await migrateLegacySharedPreferencesToSharedPreferencesAsyncIfNecessary( + legacySharedPreferencesInstance: prefs, + sharedPreferencesAsyncOptions: sharedPreferencesOptions, + migrationCompletedKey: 'migrationCompleted', + ); + _asyncPref = SharedPreferencesAsync(); + } +}