From ec57bf9264f94fe3f1c527709d1b4c9f85ec639e Mon Sep 17 00:00:00 2001 From: Leonhard Kargl Date: Thu, 20 Jun 2024 22:12:20 +0200 Subject: [PATCH 1/3] Check installed sync --- src/Core/FlatpakBackend.vala | 44 ++++++------------------------------ src/Core/Package.vala | 2 +- src/Views/Homepage.vala | 6 +++-- 3 files changed, 12 insertions(+), 40 deletions(-) diff --git a/src/Core/FlatpakBackend.vala b/src/Core/FlatpakBackend.vala index e962746fd..a23ab5c67 100644 --- a/src/Core/FlatpakBackend.vala +++ b/src/Core/FlatpakBackend.vala @@ -132,9 +132,6 @@ public class AppCenterCore.FlatpakBackend : Object { case Job.Type.GET_INSTALLED_PACKAGES: get_installed_packages_internal (job); break; - case Job.Type.IS_PACKAGE_INSTALLED: - is_package_installed_internal (job); - break; case Job.Type.REPAIR: repair_internal (job); break; @@ -888,25 +885,16 @@ public class AppCenterCore.FlatpakBackend : Object { } } - private void is_package_installed_internal (Job job) { - var args = (IsPackageInstalledArgs)job.args; - unowned var package = args.package; - + public bool is_package_installed (Package package) throws GLib.Error { unowned var fp_package = package as FlatpakPackage; if (fp_package == null || fp_package.installation == null) { critical ("Could not check installed state of package due to no flatpak installation"); - job.result = Value (typeof (bool)); - job.result = false; - job.results_ready (); - return; + return false; } unowned var bundle = package.component.get_bundle (AppStream.BundleKind.FLATPAK); if (bundle == null) { - job.result = Value (typeof (bool)); - job.result = false; - job.results_ready (); - return; + return false; } bool system = fp_package.installation == system_installation; @@ -915,35 +903,17 @@ public class AppCenterCore.FlatpakBackend : Object { try { var installed_refs = fp_package.installation.list_installed_refs (); - for (int j = 0; j < installed_refs.length; j++) { - unowned Flatpak.InstalledRef installed_ref = installed_refs[j]; - + foreach (unowned var installed_ref in installed_refs) { var bundle_id = generate_package_list_key (system, installed_ref.origin, installed_ref.format_ref ()); if (key == bundle_id) { - job.result = Value (typeof (bool)); - job.result = true; - job.results_ready (); - return; + return true; } } } catch (Error e) { - job.error = e; - job.results_ready (); - return; + warning ("Failed to check if package is installed: %s", e.message); } - job.result = Value (typeof (bool)); - job.result = false; - job.results_ready (); - } - - public async bool is_package_installed (Package package) throws GLib.Error { - var job_args = new IsPackageInstalledArgs (); - job_args.package = package; - - var job = yield launch_job (Job.Type.IS_PACKAGE_INSTALLED, job_args); - - return job.result.get_boolean (); + return false; } private void refresh_cache_internal (Job job) { diff --git a/src/Core/Package.vala b/src/Core/Package.vala index 3f9fb8751..21d8654d4 100644 --- a/src/Core/Package.vala +++ b/src/Core/Package.vala @@ -478,7 +478,7 @@ public class AppCenterCore.Package : Object { public async bool uninstall () throws Error { // We possibly don't know if this package is installed or not yet, so trigger that check first - _installed = yield AppCenterCore.FlatpakBackend.get_default ().is_package_installed (this); + _installed = AppCenterCore.FlatpakBackend.get_default ().is_package_installed (this); update_state (); diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala index 745c66c02..34cc04a43 100644 --- a/src/Views/Homepage.vala +++ b/src/Views/Homepage.vala @@ -338,7 +338,9 @@ public class AppCenter.Homepage : Adw.NavigationPage { var installed = false; foreach (var origin_package in package.origin_packages) { try { - if (yield AppCenterCore.FlatpakBackend.get_default ().is_package_installed (origin_package)) { + warning ("CHECK INSTALLED"); + if (AppCenterCore.FlatpakBackend.get_default ().is_package_installed (origin_package)) { + warning ("CHECKED INSTALLED"); installed = true; break; } @@ -373,7 +375,7 @@ public class AppCenter.Homepage : Adw.NavigationPage { var installed = false; foreach (var origin_package in package.origin_packages) { try { - if (yield AppCenterCore.FlatpakBackend.get_default ().is_package_installed (origin_package)) { + if (AppCenterCore.FlatpakBackend.get_default ().is_package_installed (origin_package)) { installed = true; break; } From 72daaed9e400f8843aca723f98eace6b64b7a4c9 Mon Sep 17 00:00:00 2001 From: Leonhard Kargl Date: Thu, 20 Jun 2024 22:17:48 +0200 Subject: [PATCH 2/3] Cleanup --- src/Core/Job.vala | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Core/Job.vala b/src/Core/Job.vala index a2c9736ea..29a04d1d8 100644 --- a/src/Core/Job.vala +++ b/src/Core/Job.vala @@ -35,7 +35,6 @@ public class AppCenterCore.Job : Object { INSTALL_PACKAGE, UPDATE_PACKAGE, REMOVE_PACKAGE, - IS_PACKAGE_INSTALLED, GET_PACKAGE_DETAILS, GET_PACKAGE_DEPENDENCIES, GET_PREPARED_PACKAGES, @@ -46,7 +45,6 @@ public class AppCenterCore.Job : Object { case GET_DETAILS_FOR_PACKAGE_IDS: case GET_PACKAGE_DEPENDENCIES: case GET_PACKAGE_DETAILS: - case IS_PACKAGE_INSTALLED: return _("Getting app informationā€¦"); case GET_DOWNLOAD_SIZE: return _("Getting download sizeā€¦"); @@ -126,10 +124,6 @@ public class AppCenterCore.RefreshCacheArgs : JobArgs { public Cancellable? cancellable; } -public class AppCenterCore.IsPackageInstalledArgs : JobArgs { - public Package package; -} - public class AppCenterCore.GetPackageDetailsArgs : JobArgs { public Package package; } From 758dc47a9e9b29c663d6f907e1bc661d88e10a6f Mon Sep 17 00:00:00 2001 From: Leonhard Kargl Date: Thu, 20 Jun 2024 22:31:33 +0200 Subject: [PATCH 3/3] Oops --- src/Views/Homepage.vala | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala index 282037864..a5dae8c42 100644 --- a/src/Views/Homepage.vala +++ b/src/Views/Homepage.vala @@ -332,9 +332,7 @@ public class AppCenter.Homepage : Adw.NavigationPage { var installed = false; foreach (var origin_package in package.origin_packages) { try { - warning ("CHECK INSTALLED"); if (AppCenterCore.FlatpakBackend.get_default ().is_package_installed (origin_package)) { - warning ("CHECKED INSTALLED"); installed = true; break; }