You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:get_storage/get_storage.dart';
|
|
import '../../core/utils/logger.dart';
|
|
|
|
class ThemeService {
|
|
final _box = GetStorage();
|
|
final _key = 'isDarkMode';
|
|
|
|
/// 获取主题模式
|
|
ThemeMode getThemeMode() {
|
|
final isDarkMode = isSavedDarkMode();
|
|
Logger.info('获取保存的主题: ${isDarkMode ? "暗黑" : "浅色"}');
|
|
return isDarkMode ? ThemeMode.dark : ThemeMode.light;
|
|
}
|
|
|
|
/// 是否是暗黑模式
|
|
bool isSavedDarkMode() {
|
|
try {
|
|
final value = _box.read<bool>(_key);
|
|
Logger.info('从存储读取主题设置: $value');
|
|
return value ?? false;
|
|
} catch (e) {
|
|
Logger.error('读取主题设置失败: $e');
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// 保存主题模式到本地存储
|
|
Future<void> saveThemeMode(bool isDarkMode) async {
|
|
try {
|
|
Logger.info('保存主题设置: ${isDarkMode ? "暗黑" : "浅色"}');
|
|
await _box.write(_key, isDarkMode);
|
|
} catch (e) {
|
|
Logger.error('保存主题设置失败: $e');
|
|
}
|
|
}
|
|
}
|