import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; class ThemeProvider extends ChangeNotifier { ThemeMode _themeMode = ThemeMode.system; ThemeMode get themeMode => _themeMode; bool get isDarkMode { if (_themeMode == ThemeMode.system) { return WidgetsBinding.instance.window.platformBrightness == Brightness.dark; } return _themeMode == ThemeMode.dark; } ThemeProvider() { _loadThemeMode(); } void setThemeMode(ThemeMode themeMode) async { _themeMode = themeMode; notifyListeners(); // Sauvegarder la préférence final prefs = await SharedPreferences.getInstance(); await prefs.setString('themeMode', themeMode.toString()); } void _loadThemeMode() async { final prefs = await SharedPreferences.getInstance(); final themeModeString = prefs.getString('themeMode'); if (themeModeString != null) { switch (themeModeString) { case 'ThemeMode.light': _themeMode = ThemeMode.light; break; case 'ThemeMode.dark': _themeMode = ThemeMode.dark; break; case 'ThemeMode.system': default: _themeMode = ThemeMode.system; break; } notifyListeners(); } } }