refactor: 完成存储层迁移,替换AppKVStore为KvStorage
主要变更: 1. 重构存储层导入路径,将app_kv_store替换为kv_storage 2. 移除AppKVStore初始化代码,统一使用KvStorage 3. 修复壁纸健康检测逻辑,使用最新检查时间判断检测间隔 4. 调整主页头部容器高度与裁剪行为 5. 新增引导页下次显示开关与Riverpod提供者 6. 修复API响应List类型转换崩溃问题 7. 优化部分文件头注释格式
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
// ============================================================
|
||||
// 闲言APP — 传输设置Provider
|
||||
// 创建时间: 2026-05-10
|
||||
// 更新时间: 2026-05-13
|
||||
// 作用: 文件传输设置持久化 — SharedPreferences + Riverpod
|
||||
// 上次更新: v6.1.0 新增消息加密设置(encryptMessages+encryptionAlgorithm)
|
||||
// 更新时间: 2026-05-24
|
||||
// 作用: 文件传输设置持久化 — KvStorage + Riverpod
|
||||
// 上次更新: SharedPreferences → KvStorage 统一存储层
|
||||
// ============================================================
|
||||
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:xianyan/core/storage/kv_storage.dart';
|
||||
import '../models/transfer_enums.dart';
|
||||
|
||||
class TransferSettings {
|
||||
@@ -87,35 +87,33 @@ class TransferSettingsNotifier extends Notifier<TransferSettings> {
|
||||
static const _keyEncryptionAlgorithm = 'transfer_encryption_algorithm';
|
||||
|
||||
Future<void> _loadFromPrefs() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
state = TransferSettings(
|
||||
autoAccept: prefs.getBool(_keyAutoAccept) ?? state.autoAccept,
|
||||
autoAccept: KvStorage.getBool(_keyAutoAccept) ?? state.autoAccept,
|
||||
autoConnectSignaling:
|
||||
prefs.getBool(_keyAutoConnect) ?? state.autoConnectSignaling,
|
||||
KvStorage.getBool(_keyAutoConnect) ?? state.autoConnectSignaling,
|
||||
receiveNotification:
|
||||
prefs.getBool(_keyNotifyReceive) ?? state.receiveNotification,
|
||||
saveToGallery: prefs.getBool(_keySaveToGallery) ?? state.saveToGallery,
|
||||
KvStorage.getBool(_keyNotifyReceive) ?? state.receiveNotification,
|
||||
saveToGallery: KvStorage.getBool(_keySaveToGallery) ?? state.saveToGallery,
|
||||
preferredTransport: TransportType.values.firstWhere(
|
||||
(t) => t.id == prefs.getString(_keyTransport),
|
||||
(t) => t.id == KvStorage.getString(_keyTransport),
|
||||
orElse: () => state.preferredTransport,
|
||||
),
|
||||
deviceName: prefs.getString(_keyDeviceName) ?? state.deviceName,
|
||||
downloadPath: prefs.getString(_keyDownloadPath) ?? state.downloadPath,
|
||||
deviceName: KvStorage.getString(_keyDeviceName) ?? state.deviceName,
|
||||
downloadPath: KvStorage.getString(_keyDownloadPath) ?? state.downloadPath,
|
||||
signalingServerUrl:
|
||||
prefs.getString(_keySignalingUrl) ?? state.signalingServerUrl,
|
||||
debugMode: prefs.getBool(_keyDebugMode) ?? state.debugMode,
|
||||
encryptMessages: prefs.getBool(_keyEncryptMessages) ?? false,
|
||||
KvStorage.getString(_keySignalingUrl) ?? state.signalingServerUrl,
|
||||
debugMode: KvStorage.getBool(_keyDebugMode) ?? state.debugMode,
|
||||
encryptMessages: KvStorage.getBool(_keyEncryptMessages) ?? false,
|
||||
encryptionAlgorithm:
|
||||
prefs.getString(_keyEncryptionAlgorithm) ?? 'AES-256-CBC',
|
||||
KvStorage.getString(_keyEncryptionAlgorithm) ?? 'AES-256-CBC',
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _savePref(String key, dynamic value) async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
if (value is bool) {
|
||||
await prefs.setBool(key, value);
|
||||
await KvStorage.setBool(key, value);
|
||||
} else if (value is String) {
|
||||
await prefs.setString(key, value);
|
||||
await KvStorage.setString(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user