mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-07-21 16:21:04 +10:00
remove voice code make optimizations. Fix channels race conditions. add reply function
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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<void> 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user