From 3f9d7c9cc0d382bf1bbec8be73619bcb00a25307 Mon Sep 17 00:00:00 2001 From: Aunali321 Date: Tue, 11 Oct 2022 20:27:29 +0530 Subject: [PATCH] fix: add back saving patched apps after clearing data. --- lib/services/manager_api.dart | 29 +++++++++++++++++++++++++++ lib/ui/views/home/home_viewmodel.dart | 1 + 2 files changed, 30 insertions(+) diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index 236e1b80..4bfae93a 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -256,6 +256,35 @@ class ManagerAPI { return unsavedApps; } + Future reAssessSavedApps() async { + List patchedApps = getPatchedApps(); + List unsavedApps = await getUnsavedApps(patchedApps); + patchedApps.addAll(unsavedApps); + List toRemove = await getAppsToRemove(patchedApps); + patchedApps.removeWhere((a) => toRemove.contains(a)); + for (PatchedApplication app in patchedApps) { + app.hasUpdates = + await hasAppUpdates(app.originalPackageName, app.patchDate); + app.changelog = + await getAppChangelog(app.originalPackageName, app.patchDate); + if (!app.hasUpdates) { + String? currentInstalledVersion = + (await DeviceApps.getApp(app.packageName))?.versionName; + if (currentInstalledVersion != null) { + String currentSavedVersion = app.version; + int currentInstalledVersionInt = int.parse( + currentInstalledVersion.replaceAll(RegExp('[^0-9]'), '')); + int currentSavedVersionInt = + int.parse(currentSavedVersion.replaceAll(RegExp('[^0-9]'), '')); + if (currentInstalledVersionInt > currentSavedVersionInt) { + app.hasUpdates = true; + } + } + } + } + await setPatchedApps(patchedApps); + } + Future isAppUninstalled(PatchedApplication app) async { bool existsRoot = false; bool existsNonRoot = await DeviceApps.isAppInstalled(app.packageName); diff --git a/lib/ui/views/home/home_viewmodel.dart b/lib/ui/views/home/home_viewmodel.dart index 426a93dc..e28c864f 100644 --- a/lib/ui/views/home/home_viewmodel.dart +++ b/lib/ui/views/home/home_viewmodel.dart @@ -49,6 +49,7 @@ class HomeViewModel extends BaseViewModel { _toast.show('homeView.noConnection'); } _getPatchedApps(); + _managerAPI.reAssessSavedApps().then((_) => _getPatchedApps()); } void navigateToAppInfo(PatchedApplication app) {