From f356435b9be71d1274caf55b83d30e30a377eb88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Sat, 29 Jun 2024 13:05:41 -0700 Subject: [PATCH] UpdateManager: clean up update_cache --- src/Core/UpdateManager.vala | 73 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala index aea7feb20..e1d4b101e 100644 --- a/src/Core/UpdateManager.vala +++ b/src/Core/UpdateManager.vala @@ -219,38 +219,39 @@ public class AppCenterCore.UpdateManager : Object { } } - var nm = NetworkMonitor.get_default (); - /* One cache update a day, keeps the doctor away! */ var seconds_since_last_refresh = new DateTime.now_utc ().difference (last_cache_update) / GLib.TimeSpan.SECOND; bool last_cache_update_is_old = seconds_since_last_refresh >= SECONDS_BETWEEN_REFRESHES; - if (force || last_cache_update_is_old) { - if (nm.get_network_available ()) { - debug ("New refresh task"); - refresh_in_progress = true; - try { - success = yield FlatpakBackend.get_default ().refresh_cache (cancellable); + if (!force && !last_cache_update_is_old) { + debug ("Too soon to refresh and not forced"); + return; + } - if (success) { - last_cache_update = new DateTime.now_utc (); - AppCenter.App.settings.set_int64 ("last-refresh-time", last_cache_update.to_unix ()); - } + var nm = NetworkMonitor.get_default (); + if (!nm.get_network_available ()) { + return; + } - seconds_since_last_refresh = 0; - } catch (Error e) { - if (!(e is GLib.IOError.CANCELLED)) { - critical ("Update_cache: Refesh cache async failed - %s", e.message); - cache_update_failed (e); - } - } finally { - refresh_in_progress = false; - } + debug ("New refresh task"); + refresh_in_progress = true; + try { + success = yield FlatpakBackend.get_default ().refresh_cache (cancellable); + + if (success) { + last_cache_update = new DateTime.now_utc (); + AppCenter.App.settings.set_int64 ("last-refresh-time", last_cache_update.to_unix ()); } - } else { - debug ("Too soon to refresh and not forced"); - } + seconds_since_last_refresh = 0; + } catch (Error e) { + if (!(e is GLib.IOError.CANCELLED)) { + critical ("Update_cache: Refesh cache async failed - %s", e.message); + cache_update_failed (e); + } + } finally { + refresh_in_progress = false; + } var next_refresh = SECONDS_BETWEEN_REFRESHES - (uint)seconds_since_last_refresh; debug ("Setting a timeout for a refresh in %f minutes", next_refresh / 60.0f); @@ -261,19 +262,17 @@ public class AppCenterCore.UpdateManager : Object { return GLib.Source.REMOVE; }); - if (nm.get_network_available ()) { - if ((force || last_cache_update_is_old) && AppCenter.App.settings.get_boolean ("automatic-updates")) { - yield get_updates (); - debug ("Update Flatpaks"); - var installed_apps = yield FlatpakBackend.get_default ().get_installed_applications (cancellable); - foreach (var app in installed_apps) { - if (app.update_available && !app.should_pay) { - debug ("Update: %s", app.get_name ()); - try { - yield app.update (false); - } catch (Error e) { - warning ("Updating %s failed: %s", app.get_name (), e.message); - } + if (AppCenter.App.settings.get_boolean ("automatic-updates")) { + yield get_updates (); + debug ("Update Flatpaks"); + for (int i = 0; i < updates_liststore.n_items; i++) { + var package = (Package) updates_liststore.get_item (i); + if (!package.should_pay) { + debug ("Update: %s", package.get_name ()); + try { + yield package.update (false); + } catch (Error e) { + warning ("Updating %s failed: %s", package.get_name (), e.message); } } }