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