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

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');
}
}
}