import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// Persists and exposes the app theme mode (system | dark). class ThemeProvider extends ChangeNotifier { static const _key = 'theme_mode'; ThemeMode _mode = ThemeMode.system; ThemeProvider() { _load(); } ThemeMode get mode => _mode; Future _load() async { final prefs = await SharedPreferences.getInstance(); final v = prefs.getString(_key); if (v == 'dark') { _mode = ThemeMode.dark; } else if (v == 'light') { _mode = ThemeMode.light; } else { _mode = ThemeMode.system; } notifyListeners(); } Future setMode(ThemeMode mode) async { _mode = mode; final prefs = await SharedPreferences.getInstance(); await prefs.setString( _key, mode == ThemeMode.dark ? 'dark' : mode == ThemeMode.light ? 'light' : 'system'); notifyListeners(); } }