import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; class ThemeModeService extends ChangeNotifier { static const _prefsKey = 'theme_mode_preference'; ThemeMode _mode = ThemeMode.system; bool _loaded = false; ThemeMode get mode => _mode; bool get isLoaded => _loaded; ThemeModeService() { _load(); } Future _load() async { final prefs = await SharedPreferences.getInstance(); final saved = prefs.getString(_prefsKey); if (saved != null) { switch (saved) { case 'light': _mode = ThemeMode.light; break; case 'dark': _mode = ThemeMode.dark; break; default: _mode = ThemeMode.system; } } _loaded = true; notifyListeners(); } Future setMode(ThemeMode mode) async { _mode = mode; final prefs = await SharedPreferences.getInstance(); final value = switch (mode) { ThemeMode.light => 'light', ThemeMode.dark => 'dark', _ => 'system', }; await prefs.setString(_prefsKey, value); notifyListeners(); } }