shared_preference_manager.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:flutter/foundation.dart';
  2. import 'package:shared_preferences/shared_preferences.dart';
  3. import '../../o2.dart';
  4. class SharedPreferenceManager {
  5. static final SharedPreferenceManager instance = SharedPreferenceManager._internal();
  6. SharedPreferenceManager._internal();
  7. factory SharedPreferenceManager() => instance;
  8. static const String FLUTTER_O2_USER_KEY = 'FLUTTER_O2_USER_KEY';
  9. static const String FLUTTER_O2_UNIT_KEY = 'FLUTTER_O2_UNIT_KEY';
  10. static const String FLUTTER_O2_CENTER_SERVER_KEY = 'FLUTTER_O2_CENTER_SERVER_KEY';
  11. static const String FLUTTER_O2_THEME_KEY = 'FLUTTER_O2_THEME_KEY';
  12. String? _theme;
  13. get theme {
  14. return _theme;
  15. }
  16. //初始化主题色
  17. Future<void> initTheme(String? theme) async {
  18. debugPrintStack(label: 'initTheme:$theme');
  19. if(theme != null) {
  20. _theme = await putString(FLUTTER_O2_THEME_KEY, theme);
  21. }else {
  22. _theme = redThemeKey;
  23. }
  24. }
  25. // String
  26. Future<String?> putString(String key, String? stringValue) async {
  27. SharedPreferences preferences = await SharedPreferences.getInstance();
  28. String? oldValue = preferences.getString(key);
  29. if (stringValue != null && stringValue != oldValue) {
  30. preferences.setString(key, stringValue);
  31. } else {
  32. stringValue = oldValue;
  33. }
  34. return stringValue;
  35. }
  36. }