import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// App-wide theme mode, persisted across launches. Defaults to /// [ThemeMode.system] until a user preference is loaded/set. class ThemeController { ThemeController._(); static const _prefsKey = 'theme_mode'; static final ValueNotifier themeMode = ValueNotifier(ThemeMode.system); static Future load() async { final prefs = await SharedPreferences.getInstance(); final stored = prefs.getString(_prefsKey); themeMode.value = switch (stored) { 'light' => ThemeMode.light, 'dark' => ThemeMode.dark, _ => ThemeMode.system, }; } static Future setThemeMode(ThemeMode mode) async { themeMode.value = mode; final prefs = await SharedPreferences.getInstance(); await prefs.setString(_prefsKey, mode.name); } }