From 62289b3b3076b08ae58db7f02c2f5755b0fbfa84 Mon Sep 17 00:00:00 2001 From: xkeyC <3334969096@qq.com> Date: Sun, 16 Jun 2024 09:14:51 +0800 Subject: [PATCH] fix https://github.com/StarCitizenToolBox/app/issues/27 : unp4k missing runtime --- lib/provider/unp4kc.dart | 18 ++++++++++++++---- .../advanced_localization_ui_model.dart | 5 +---- lib/ui/tools/unp4kc/unp4kc_ui.dart | 5 +---- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/provider/unp4kc.dart b/lib/provider/unp4kc.dart index ef0c270..c3a77fd 100644 --- a/lib/provider/unp4kc.dart +++ b/lib/provider/unp4kc.dart @@ -83,10 +83,7 @@ class Unp4kCModel extends _$Unp4kCModel { errorMessage: "${state.errorMessage}\n${event.data}"); } if (!_hasUnp4kRunTimeError) { - if (state.errorMessage.contains( - "You must install .NET to run this application") || - state.errorMessage.contains( - "You must install or update .NET to run this application")) { + if (checkRunTimeError(state.errorMessage)) { _hasUnp4kRunTimeError = true; AnalyticsApi.touch("unp4k_no_runtime"); } @@ -246,6 +243,19 @@ class Unp4kCModel extends _$Unp4kCModel { } } + static bool checkRunTimeError(String errorMessage) { + if (errorMessage + .contains("You must install .NET to run this application") || + errorMessage.contains( + "You must install or update .NET to run this application") || + errorMessage.contains( + "It was not possible to find any compatible framework version")) { + AnalyticsApi.touch("unp4k_no_runtime"); + return true; + } + return false; + } + static Future unp4kTools( String applicationBinaryModuleDir, List args) async { await BinaryModuleConf.extractModule( diff --git a/lib/ui/home/localization/advanced_localization_ui_model.dart b/lib/ui/home/localization/advanced_localization_ui_model.dart index a1679c6..127d4de 100644 --- a/lib/ui/home/localization/advanced_localization_ui_model.dart +++ b/lib/ui/home/localization/advanced_localization_ui_model.dart @@ -235,10 +235,7 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel { return iniData; } catch (e) { final errorMessage = e.toString(); - if (errorMessage - .contains("You must install .NET to run this application") || - errorMessage.contains( - "You must install or update .NET to run this application")) { + if (Unp4kCModel.checkRunTimeError(errorMessage)) { AnalyticsApi.touch("advanced_localization_no_runtime"); } state = state.copyWith( diff --git a/lib/ui/tools/unp4kc/unp4kc_ui.dart b/lib/ui/tools/unp4kc/unp4kc_ui.dart index 3769382..d4acc6e 100644 --- a/lib/ui/tools/unp4kc/unp4kc_ui.dart +++ b/lib/ui/tools/unp4kc/unp4kc_ui.dart @@ -302,10 +302,7 @@ class UnP4kErrorWidget extends StatelessWidget { child: Column( mainAxisSize: MainAxisSize.min, children: [ - if (errorMessage.contains( - "You must install .NET to run this application") || - errorMessage.contains( - "You must install or update .NET to run this application")) ...[ + if (Unp4kCModel.checkRunTimeError(errorMessage)) ...[ Text( S.current.tools_unp4k_missing_runtime, style: const TextStyle(fontSize: 16),