mirror of
https://github.com/darkmoonight/Rain.git
synced 2025-06-28 12:09:57 +00:00
40 lines
1.1 KiB
Dart
Executable file
40 lines
1.1 KiB
Dart
Executable file
import 'package:get/get.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:rain/app/data/db.dart';
|
|
import 'package:rain/main.dart';
|
|
|
|
class ThemeController extends GetxController {
|
|
ThemeMode get theme => _getThemeMode();
|
|
|
|
void saveOledTheme(bool isOled) {
|
|
_updateSetting((settings) => settings.amoledTheme = isOled);
|
|
}
|
|
|
|
void saveMaterialTheme(bool isMaterial) {
|
|
_updateSetting((settings) => settings.materialColor = isMaterial);
|
|
}
|
|
|
|
void saveTheme(String themeMode) {
|
|
_updateSetting((settings) => settings.theme = themeMode);
|
|
}
|
|
|
|
void changeTheme(ThemeData theme) => Get.changeTheme(theme);
|
|
|
|
void changeThemeMode(ThemeMode themeMode) => Get.changeThemeMode(themeMode);
|
|
|
|
ThemeMode _getThemeMode() {
|
|
switch (settings.theme) {
|
|
case 'system':
|
|
return ThemeMode.system;
|
|
case 'dark':
|
|
return ThemeMode.dark;
|
|
default:
|
|
return ThemeMode.light;
|
|
}
|
|
}
|
|
|
|
void _updateSetting(void Function(Settings) update) {
|
|
update(settings);
|
|
isar.writeTxnSync(() => isar.settings.putSync(settings));
|
|
}
|
|
}
|