import 'package:shared_preferences/shared_preferences.dart'; class PreferencesService { static const _groupByTypeKey = 'dashboard_group_by_type'; static const _biometricEnabledKey = 'biometric_enabled'; static const _showCategoryFilterKey = 'dashboard_show_category_filter'; static const _themeModeKey = 'theme_mode'; static PreferencesService? _instance; SharedPreferences? _prefs; PreferencesService._(); static PreferencesService get instance { _instance ??= PreferencesService._(); return _instance!; } Future get _preferences async { _prefs ??= await SharedPreferences.getInstance(); return _prefs!; } Future getGroupByType() async { final prefs = await _preferences; return prefs.getBool(_groupByTypeKey) ?? false; } Future setGroupByType(bool value) async { final prefs = await _preferences; await prefs.setBool(_groupByTypeKey, value); } Future getBiometricEnabled() async { final prefs = await _preferences; return prefs.getBool(_biometricEnabledKey) ?? false; } Future setBiometricEnabled(bool value) async { final prefs = await _preferences; await prefs.setBool(_biometricEnabledKey, value); } Future getShowCategoryFilter() async { final prefs = await _preferences; return prefs.getBool(_showCategoryFilterKey) ?? false; } Future setShowCategoryFilter(bool value) async { final prefs = await _preferences; await prefs.setBool(_showCategoryFilterKey, value); } /// Returns 'light', 'dark', or 'system' (default). Future getThemeMode() async { final prefs = await _preferences; return prefs.getString(_themeModeKey) ?? 'system'; } Future setThemeMode(String mode) async { final prefs = await _preferences; await prefs.setString(_themeModeKey, mode); } }