feat: CommunityInputMethod

This commit is contained in:
2024-11-05 22:55:00 +08:00
parent 281f6ee995
commit 9f7e0dad52
9 changed files with 573 additions and 5 deletions

View File

@ -247,9 +247,6 @@ class LocalizationUIModel extends _$LocalizationUIModel {
if (!globalIni.toString().endsWith("\n")) {
globalIni.write("\n");
}
if (advanced ?? false) {
globalIni.write("_starcitizen_doctor_localization_advanced=true\n");
}
if (communityInputMethodVersion != null) {
globalIni.write(
"_starcitizen_doctor_localization_community_input_method_version=$communityInputMethodVersion\n");
@ -259,6 +256,9 @@ class LocalizationUIModel extends _$LocalizationUIModel {
globalIni.write("$line\n");
}
}
if (advanced ?? false) {
globalIni.write("_starcitizen_doctor_localization_advanced=true\n");
}
globalIni
.write("_starcitizen_doctor_localization_version=$versionName\n");
}
@ -277,6 +277,38 @@ class LocalizationUIModel extends _$LocalizationUIModel {
await _updateStatus();
}
Future<Map<String, String>?> getCommunityInputMethodSupportData() async {
final iniPath =
"${_scDataDir.absolute.path}\\Localization\\${state.selectedLanguage}\\global.ini";
final iniFile = File(iniPath);
if (!await iniFile.exists()) {
return {};
}
final iniStringSplit = (await iniFile.readAsString()).split("\n");
final communityInputMethodSupportData = <String, String>{};
var b = false;
for (var i = 0; i < iniStringSplit.length; i++) {
final line = iniStringSplit[i];
if (line.trim().startsWith(
"_starcitizen_doctor_localization_community_input_method_version=")) {
b = true;
continue;
} else if (line
.trim()
.startsWith("_starcitizen_doctor_localization_version=")) {
b = false;
return communityInputMethodSupportData;
} else if (b) {
final kv = line.split("=");
if (kv.length == 2) {
communityInputMethodSupportData[kv[0]] = kv[1];
}
}
}
return null;
}
VoidCallback? doRemoteInstall(BuildContext context, ScLocalizationData value,
{bool isEnableCommunityInputMethod = false}) {
return () async {
@ -530,4 +562,8 @@ class LocalizationUIModel extends _$LocalizationUIModel {
}
return updates;
}
Future<void> onChangeGameInstallPath(String value) async {
await _loadData();
}
}

View File

@ -7,7 +7,7 @@ part of 'localization_ui_model.dart';
// **************************************************************************
String _$localizationUIModelHash() =>
r'86e433e1901683ad05b81e34d3b37b9b72c4c786';
r'b8c893413fa8a314d0fa3b2cfffb63f723226bae';
/// See also [LocalizationUIModel].
@ProviderFor(LocalizationUIModel)