34 lines
783 B
Dart
34 lines
783 B
Dart
|
|
import 'package:flutter/material.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
Future<void> saveDarkMode(bool isDark) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setBool('darkMode', isDark);
|
|
}
|
|
|
|
Future<bool> loadDarkMode() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
return prefs.getBool('darkMode') ?? false; // default light
|
|
}
|
|
|
|
class ThemeProvider extends ChangeNotifier {
|
|
bool _isDark = false;
|
|
|
|
bool get isDark => _isDark;
|
|
|
|
ThemeProvider() {
|
|
_load(); // load saved value on startup
|
|
}
|
|
|
|
void _load() async {
|
|
_isDark = await loadDarkMode();
|
|
notifyListeners();
|
|
}
|
|
|
|
void setDarkMode(bool value) async {
|
|
_isDark = value;
|
|
notifyListeners();
|
|
await saveDarkMode(value);
|
|
}
|
|
} |