Files
kmobile/lib/config/theme_mode_controller.dart
2025-08-06 17:26:25 +05:30

41 lines
965 B
Dart

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class ThemeModeController with ChangeNotifier {
ThemeMode _currentThemeMode = ThemeMode.system;
ThemeMode get currentThemeMode => _currentThemeMode;
Future<void> loadThemeMode() async {
final prefs = await SharedPreferences.getInstance();
final savedMode = prefs.getString('theme_mode');
if (savedMode != null) {
switch (savedMode) {
case 'light':
_currentThemeMode = ThemeMode.light;
break;
case 'dark':
_currentThemeMode = ThemeMode.dark;
break;
default:
_currentThemeMode = ThemeMode.system;
}
notifyListeners();
}
}
Future<void> toggleThemeMode() async {
if (_currentThemeMode == ThemeMode.light) {
_currentThemeMode = ThemeMode.dark;
} else {
_currentThemeMode = ThemeMode.light;
}
notifyListeners();
final prefs = await SharedPreferences.getInstance();
await prefs.setString(
'theme_mode',
_currentThemeMode == ThemeMode.light ? 'light' : 'dark',
);
}
}