ops-console v1.0.2 (versionCode 8) 源码入库
This commit is contained in:
51
lib/providers/metrics_visibility_provider.dart
Normal file
51
lib/providers/metrics_visibility_provider.dart
Normal file
@@ -0,0 +1,51 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
/// 持久化键:是否显示设备详情页的运行指标(CPU / 内存 / 磁盘 / 网络)。
|
||||
const String _kShowRuntimeMetrics = 'show_runtime_metrics';
|
||||
|
||||
/// 读取已保存的显示偏好;默认返回 false(即默认隐藏运行指标)。
|
||||
Future<bool> loadSavedShowRuntimeMetrics() async {
|
||||
try {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
return prefs.getBool(_kShowRuntimeMetrics) ?? false;
|
||||
} catch (_) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// 设备详情页运行指标显示偏好管理。
|
||||
///
|
||||
/// - 默认关闭,首次进入设备详情时不展示 CPU/内存/磁盘/网络卡片。
|
||||
/// - 用户可在「我的 → 设置」中手动开启。
|
||||
/// - 状态持久化到 [SharedPreferences],切换账号/重启 App 后仍保持。
|
||||
class ShowRuntimeMetricsNotifier extends Notifier<bool> {
|
||||
@override
|
||||
bool build() {
|
||||
_load();
|
||||
return false;
|
||||
}
|
||||
|
||||
Future<void> _load() async {
|
||||
final saved = await loadSavedShowRuntimeMetrics();
|
||||
if (saved != state) {
|
||||
state = saved;
|
||||
}
|
||||
}
|
||||
|
||||
/// 切换显示状态并持久化。
|
||||
Future<void> setValue(bool value) async {
|
||||
state = value;
|
||||
try {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setBool(_kShowRuntimeMetrics, value);
|
||||
} catch (_) {
|
||||
// 忽略持久化失败,运行时状态仍生效。
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// 运行指标显示偏好提供者。
|
||||
final showRuntimeMetricsProvider = NotifierProvider<ShowRuntimeMetricsNotifier, bool>(
|
||||
ShowRuntimeMetricsNotifier.new,
|
||||
);
|
||||
Reference in New Issue
Block a user