新增 汉化缓存清理

This commit is contained in:
xkeyC 2023-12-06 20:49:14 +08:00
parent 9c049e7ae5
commit 3d7454613f
5 changed files with 47 additions and 13 deletions

View File

@ -18,9 +18,9 @@ import 'package:window_manager/window_manager.dart';
import '../base/ui.dart'; import '../base/ui.dart';
class AppConf { class AppConf {
static const String appVersion = "2.9.22 Beta"; static const String appVersion = "2.10.0 Beta";
static const int appVersionCode = 33; static const int appVersionCode = 35;
static const String appVersionDate = "2023-12-05"; static const String appVersionDate = "2023-12-06";
static const String giteaAttachmentsUrl = static const String giteaAttachmentsUrl =
"https://git.sctoolbox.sccsgo.com/SCToolBox/Release"; "https://git.sctoolbox.sccsgo.com/SCToolBox/Release";

View File

@ -51,6 +51,9 @@ class IndexUIModel extends BaseUIModel {
case 1: case 1:
getCreatedChildUIModel("tools")?.reloadData(); getCreatedChildUIModel("tools")?.reloadData();
break; break;
case 2:
getCreatedChildUIModel("settings")?.reloadData();
break;
} }
notifyListeners(); notifyListeners();
} }
@ -65,7 +68,8 @@ class IndexUIModel extends BaseUIModel {
} }
try { try {
var result = await Process.run(SystemHelper.powershellPath, ["echo", "ping"]); var result =
await Process.run(SystemHelper.powershellPath, ["echo", "ping"]);
if (result.stdout.toString().startsWith("ping")) { if (result.stdout.toString().startsWith("ping")) {
dPrint("powershell check pass"); dPrint("powershell check pass");
} else { } else {

View File

@ -13,20 +13,21 @@ class SettingUI extends BaseUI<SettingUIModel> {
child: Column( child: Column(
children: [ children: [
if (AppConf.isMSE) ...[ if (AppConf.isMSE) ...[
makeSettingsItem(const Icon(FluentIcons.reset_device), "重置自动密码填充", makeSettingsItem(
const Icon(FluentIcons.reset_device, size: 20), "重置自动密码填充",
subTitle: subTitle:
"启用:${model.isEnableAutoLogin ? "已启用" : "已禁用"} 设备支持:${model.isDeviceSupportWinHello ? "支持" : "不支持"} 邮箱:${model.autoLoginEmail} 密码:${model.isEnableAutoLoginPwd ? "已加密保存" : "未保存"}", "启用:${model.isEnableAutoLogin ? "已启用" : "已禁用"} 设备支持:${model.isDeviceSupportWinHello ? "支持" : "不支持"} 邮箱:${model.autoLoginEmail} 密码:${model.isEnableAutoLoginPwd ? "已加密保存" : "未保存"}",
onTap: model.onResetAutoLogin), onTap: model.onResetAutoLogin),
], ],
const SizedBox(height: 12), const SizedBox(height: 12),
makeSettingsItem(const Icon(FontAwesomeIcons.microchip), makeSettingsItem(const Icon(FontAwesomeIcons.microchip, size: 20),
"启动游戏时忽略能效核心( 适用于Intel 12th+ 处理器 [实验性功能,请随时反馈]", "启动游戏时忽略能效核心( 适用于Intel 12th+ 处理器 [实验性功能,请随时反馈]",
subTitle: subTitle:
"已设置的核心数量:${model.inputGameLaunchECore} (此功能适用于首页的盒子一键启动 或 工具中的RSI启动器管理员模式当为 0 时不启用此功能 ", "已设置的核心数量:${model.inputGameLaunchECore} (此功能适用于首页的盒子一键启动 或 工具中的RSI启动器管理员模式当为 0 时不启用此功能 ",
onTap: model.setGameLaunchECore), onTap: model.setGameLaunchECore),
const SizedBox(height: 12), const SizedBox(height: 12),
makeSettingsItem( makeSettingsItem(const Icon(FluentIcons.folder_open, size: 20),
const Icon(FluentIcons.folder_open), "设置启动器文件RSI Launcher.exe", "设置启动器文件RSI Launcher.exe",
subTitle: model.customLauncherPath != null subTitle: model.customLauncherPath != null
? "${model.customLauncherPath}" ? "${model.customLauncherPath}"
: "手动设置启动器位置,建议仅在无法自动扫描安装位置时使用", : "手动设置启动器位置,建议仅在无法自动扫描安装位置时使用",
@ -34,14 +35,19 @@ class SettingUI extends BaseUI<SettingUIModel> {
model.delName("custom_launcher_path"); model.delName("custom_launcher_path");
}), }),
const SizedBox(height: 12), const SizedBox(height: 12),
makeSettingsItem( makeSettingsItem(const Icon(FluentIcons.game, size: 20),
const Icon(FluentIcons.game), "设置游戏文件 StarCitizen.exe", "设置游戏文件 StarCitizen.exe",
subTitle: model.customGamePath != null subTitle: model.customGamePath != null
? "${model.customGamePath}" ? "${model.customGamePath}"
: "手动设置游戏安装位置,建议仅在无法自动扫描安装位置时使用", : "手动设置游戏安装位置,建议仅在无法自动扫描安装位置时使用",
onTap: model.setGamePath, onDel: () { onTap: model.setGamePath, onDel: () {
model.delName("custom_game_path"); model.delName("custom_game_path");
}), }),
const SizedBox(height: 12),
makeSettingsItem(const Icon(FluentIcons.delete, size: 20), "清理汉化文件缓存",
subTitle:
"缓存大小 ${(model.locationCacheSize / 1024 / 1024).toStringAsFixed(2)}MB清理盒子下载的汉化文件缓存不会影响已安装的汉化",
onTap: model.cleanLocationCache),
], ],
), ),
); );
@ -55,14 +61,14 @@ class SettingUI extends BaseUI<SettingUIModel> {
padding: const EdgeInsets.only(top: 12, bottom: 12), padding: const EdgeInsets.only(top: 12, bottom: 12),
child: Row( child: Row(
children: [ children: [
icon,
const SizedBox(width: 16),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( Row(
children: [ children: [
icon,
const SizedBox(width: 12),
Text(title), Text(title),
const Spacer(), const Spacer(),
], ],

View File

@ -1,9 +1,12 @@
import 'dart:io';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:local_auth/local_auth.dart'; import 'package:local_auth/local_auth.dart';
import 'package:starcitizen_doctor/base/ui_model.dart'; import 'package:starcitizen_doctor/base/ui_model.dart';
import 'package:starcitizen_doctor/common/conf.dart'; import 'package:starcitizen_doctor/common/conf.dart';
import 'package:starcitizen_doctor/common/helper/system_helper.dart';
import 'package:starcitizen_doctor/common/win32/credentials.dart'; import 'package:starcitizen_doctor/common/win32/credentials.dart';
class SettingUIModel extends BaseUIModel { class SettingUIModel extends BaseUIModel {
@ -17,8 +20,11 @@ class SettingUIModel extends BaseUIModel {
String? customLauncherPath; String? customLauncherPath;
String? customGamePath; String? customGamePath;
int locationCacheSize = 0;
@override @override
loadData() async { loadData() async {
dPrint("SettingUIModel.loadData");
final LocalAuthentication localAuth = LocalAuthentication(); final LocalAuthentication localAuth = LocalAuthentication();
isDeviceSupportWinHello = await localAuth.isDeviceSupported(); isDeviceSupportWinHello = await localAuth.isDeviceSupported();
notifyListeners(); notifyListeners();
@ -27,6 +33,7 @@ class SettingUIModel extends BaseUIModel {
_updateAutoLoginAccount(); _updateAutoLoginAccount();
} }
_loadCustomPath(); _loadCustomPath();
_loadLocationCacheSize();
} }
Future<void> onResetAutoLogin() async { Future<void> onResetAutoLogin() async {
@ -125,4 +132,21 @@ class SettingUIModel extends BaseUIModel {
await confBox.delete(key); await confBox.delete(key);
reloadData(); reloadData();
} }
_loadLocationCacheSize() async {
final len = await SystemHelper.getDirLen(
"${AppConf.applicationSupportDir}/Localizations");
locationCacheSize = len;
notifyListeners();
}
Future<void> cleanLocationCache() async {
final ok = await showConfirmDialogs(
context!, "确认清理汉化缓存?", const Text("这不会影响已安装的汉化。"));
if (ok == true) {
final dir = Directory("${AppConf.applicationSupportDir}/Localizations");
await handleError(() => dir.delete(recursive: true));
reloadData();
}
}
} }

@ -1 +1 @@
Subproject commit 03e4617c59058d105ac1b325cb24198dbe403878 Subproject commit 123be1e3d8170c86e121392e8bffa4def7dc3447