This commit is contained in:
2024-01-30 01:16:59 +08:00
parent 6376c2d607
commit 309f5160b4
6 changed files with 86 additions and 29 deletions

View File

@ -51,13 +51,26 @@ class SettingUI extends BaseUI<SettingUIModel> {
subTitle:
"缓存大小 ${(model.locationCacheSize / 1024 / 1024).toStringAsFixed(2)}MB清理盒子下载的汉化文件缓存不会影响已安装的汉化",
onTap: model.cleanLocationCache),
const SizedBox(height: 12),
makeSettingsItem(
const Icon(FluentIcons.internet_sharing, size: 20), "工具站访问加速",
onTap: () =>
model.onChangeToolSiteMirror(!model.isEnableToolSiteMirrors),
subTitle:
"使用镜像服务器加速访问 DPS UEX 等工具网站,若访问异常请关闭该功能。 为保护账户安全任何情况下都不会加速RSI官网。",
onSwitch: model.onChangeToolSiteMirror,
switchStatus: model.isEnableToolSiteMirrors),
],
),
);
}
Widget makeSettingsItem(Widget icon, String title,
{String? subTitle, VoidCallback? onTap, VoidCallback? onDel}) {
{String? subTitle,
VoidCallback? onTap,
VoidCallback? onDel,
void Function(bool? b)? onSwitch,
bool switchStatus = false}) {
return Button(
onPressed: onTap,
child: Padding(
@ -94,8 +107,11 @@ class SettingUI extends BaseUI<SettingUIModel> {
padding: EdgeInsets.all(6),
child: Icon(FluentIcons.delete),
)),
const SizedBox(width: 12),
],
if (onSwitch != null) ...[
ToggleSwitch(checked: switchStatus, onChanged: onSwitch),
],
const SizedBox(width: 12),
const Icon(FluentIcons.chevron_right),
],
),

View File

@ -15,6 +15,7 @@ class SettingUIModel extends BaseUIModel {
String autoLoginEmail = "-";
bool isEnableAutoLogin = false;
bool isEnableAutoLoginPwd = false;
bool isEnableToolSiteMirrors = false;
String inputGameLaunchECore = "0";
String? customLauncherPath;
@ -34,6 +35,7 @@ class SettingUIModel extends BaseUIModel {
}
_loadCustomPath();
_loadLocationCacheSize();
_loadToolSiteMirrorState();
}
Future<void> onResetAutoLogin() async {
@ -174,4 +176,18 @@ class SettingUIModel extends BaseUIModel {
await Process.run(SystemHelper.powershellPath, [script]);
showToast(context!, "创建完毕,请返回桌面查看");
}
_loadToolSiteMirrorState() async {
final userBox = await Hive.openBox("app_conf");
isEnableToolSiteMirrors =
userBox.get("isEnableToolSiteMirrors", defaultValue: false);
notifyListeners();
}
void onChangeToolSiteMirror(bool? b) async {
final userBox = await Hive.openBox("app_conf");
isEnableToolSiteMirrors = b == true;
await userBox.put("isEnableToolSiteMirrors", isEnableToolSiteMirrors);
notifyListeners();
}
}