theme
unknown
dart
3 years ago
1.2 kB
6
Indexable
import 'package:base_architecture/core/constants/persistent_keys.dart';
import 'package:base_architecture/core/constants/theme.dart';
import 'package:flutter/material.dart';
import 'package:rx_shared_preferences/rx_shared_preferences.dart';
class ThemeNotifier with ChangeNotifier {
ThemeData _themeData;
ThemeNotifier(this._themeData);
ThemeData getTheme() => _themeData;
void setTheme(ThemeData themeData) async {
_themeData = themeData;
await persistTheme(themeData);
notifyListeners();
}
Future<bool> loadPersistedTheme() async {
await RxSharedPreferences.getInstance().read<String>(
PersistentKeys.themeKey,
(p0) {
if (p0 == 'DARK') {
setTheme(AppThemes().darkTheme);
} else {
setTheme(AppThemes().lightTheme);
}
notifyListeners();
return p0.toString();
},
);
bool done = true;
return done;
}
Future<void> persistTheme(ThemeData themeData) async {
bool isDarkTheme = themeData == AppThemes().darkTheme;
RxSharedPreferences.getInstance().write<String>(
PersistentKeys.themeKey,
isDarkTheme ? 'DARK' : 'LIGHT',
(p0) => null,
);
}
}
Editor is loading...