import 'package:shared_preferences/shared_preferences.dart'; /// Singleton wrapper for SharedPreferences to avoid redundant getInstance() calls. /// /// BEFORE: Every storage operation called SharedPreferences.getInstance() /// AFTER: Single getInstance() on app startup, reused throughout lifecycle /// /// This eliminates 30+ redundant platform channel calls across the app. class PrefsManager { PrefsManager._(); static SharedPreferences? _instance; /// Initialize the cached instance. Call this once during app startup in main(). static Future initialize() async { _instance ??= await SharedPreferences.getInstance(); } /// Get the cached SharedPreferences instance. /// Throws StateError if initialize() hasn't been called. static SharedPreferences get instance { if (_instance == null) { throw StateError( 'PrefsManager not initialized. Call PrefsManager.initialize() in main() before use.', ); } return _instance!; } /// For testing: reset the instance static void reset() { _instance = null; } }