|
- import 'package:farm_tpf/utils/const_color.dart';
- import 'package:flutter/material.dart';
- import 'package:provider/provider.dart';
-
- enum AppThemeStyle { light, dark }
-
- final Map<AppThemeStyle, ThemeData> _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<AppTheme>(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();
- }
- }
|