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:
Developer
2026-05-24 05:54:14 +08:00
parent df1f127a12
commit 794da27193
98 changed files with 3795 additions and 1696 deletions

View File

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