28 lines
732 B
Dart
Executable File
28 lines
732 B
Dart
Executable File
|
|
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;
|
|
|
|
bool get isDark => _isDark;
|
|
|
|
ThemeProvider({required bool isDark}) : _isDark = isDark;
|
|
|
|
void setDarkMode(bool value) {
|
|
if (_isDark == value) return; // avoid unnecessary rebuilds
|
|
_isDark = value;
|
|
notifyListeners();
|
|
saveDarkMode(value);
|
|
}
|
|
} |