import 'package:farm_tpf/utils/const_color.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; enum AppThemeStyle { light, dark } final Map _themes = { AppThemeStyle.light: ThemeData( primaryColor: Colors.green, accentColor: Colors.green, brightness: Brightness.light, ), AppThemeStyle.dark: ThemeData( primaryColor: Colors.blue, accentColor: Colors.blue, brightness: Brightness.dark, ), }; class AppTheme extends ChangeNotifier { static AppTheme of(BuildContext context, {bool listen = false}) => Provider.of(context, listen: listen); AppThemeStyle _themeKey = AppThemeStyle.light; ThemeData get currentTheme => _themes[_themeKey]; AppThemeStyle get currentThemeKey => _themeKey; void setTheme(AppThemeStyle themeKey) { _themeKey = themeKey; notifyListeners(); } void switchTheme() { if (_themeKey == AppThemeStyle.dark) { _themeKey = AppThemeStyle.light; } else { _themeKey = AppThemeStyle.dark; } notifyListeners(); } }