45 lines
1.3 KiB
Dart
45 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:witl/storage_manager.dart';
|
|
|
|
class ThemeNotifier with ChangeNotifier {
|
|
final darkTheme = ThemeData(
|
|
primaryColor: Colors.black,
|
|
brightness: Brightness.dark,
|
|
dividerColor: Colors.black12, colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.grey).copyWith(background: const Color(0xFF212121)),
|
|
);
|
|
|
|
final lightTheme = ThemeData(
|
|
primaryColor: Colors.white,
|
|
brightness: Brightness.light,
|
|
dividerColor: Colors.white54, colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.grey).copyWith(background: const Color(0xFFE5E5E5)),
|
|
);
|
|
|
|
late ThemeData _themeData;
|
|
ThemeData getTheme() => _themeData;
|
|
|
|
ThemeNotifier() {
|
|
StorageManager.readData('themeMode').then((value) {
|
|
'value read from storage: ' + value.toString();
|
|
var themeMode = value ?? 'light';
|
|
if (themeMode == 'light') {
|
|
_themeData = lightTheme;
|
|
} else {
|
|
'setting dark theme';
|
|
_themeData = darkTheme;
|
|
}
|
|
notifyListeners();
|
|
});
|
|
}
|
|
|
|
void setDarkMode() async {
|
|
_themeData = darkTheme;
|
|
StorageManager.saveData('themeMode', 'dark');
|
|
notifyListeners();
|
|
}
|
|
|
|
void setLightMode() async {
|
|
_themeData = lightTheme;
|
|
StorageManager.saveData('themeMode', 'light');
|
|
notifyListeners();
|
|
}
|
|
} |