Skip to content

Commit

Permalink
Merge branch 'main' into danirabbit/installpackagerowgrid-lesslasagna
Browse files Browse the repository at this point in the history
  • Loading branch information
danirabbit authored Jun 20, 2024
2 parents e5b6c67 + d1b40f8 commit 7c829c1
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 49 deletions.
53 changes: 13 additions & 40 deletions src/Core/FlatpakBackend.vala
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -248,9 +245,12 @@ public class AppCenterCore.FlatpakBackend : Object {
}

private void set_actions_enabled (bool working) {
var app = Application.get_default ();
((SimpleAction) app.lookup_action ("refresh")).set_enabled (!working && !Utils.is_running_in_guest_session ());
((SimpleAction) app.lookup_action ("repair")).set_enabled (!working);
// Make sure we run on the main thread
Idle.add_once (() => {
var app = Application.get_default ();
((SimpleAction) app.lookup_action ("refresh")).set_enabled (!working && !Utils.is_running_in_guest_session ());
((SimpleAction) app.lookup_action ("repair")).set_enabled (!working);
});
}

private async void trigger_update_check () {
Expand Down Expand Up @@ -888,25 +888,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;
Expand All @@ -915,35 +906,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) {
Expand Down
6 changes: 0 additions & 6 deletions src/Core/Job.vala
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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…");
Expand Down Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Core/Package.vala
Original file line number Diff line number Diff line change
Expand Up @@ -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 ();

Expand Down
4 changes: 2 additions & 2 deletions src/Views/Homepage.vala
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,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;
}
Expand Down Expand Up @@ -367,7 +367,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;
}
Expand Down

0 comments on commit 7c829c1

Please sign in to comment.