theme
unknown
dart
2 years ago
1.2 kB
3
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...