[gnome-software/1630-new-updated-apps-are-not-actually-new] gs-overview-page: Sort recent applications by their release date



commit c3796e163d0004c949f79db116d5aca76c1b031a
Author: Milan Crha <mcrha redhat com>
Date:   Thu Feb 24 13:06:07 2022 +0100

    gs-overview-page: Sort recent applications by their release date
    
    Thus the list shows the most recently updated applications first.
    
    Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1630

 src/gs-overview-page.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/src/gs-overview-page.c b/src/gs-overview-page.c
index 50e2e2cfb..6d6df7df3 100644
--- a/src/gs-overview-page.c
+++ b/src/gs-overview-page.c
@@ -169,6 +169,18 @@ out:
        gs_overview_page_decrement_action_cnt (self);
 }
 
+static gint
+gs_overview_page_sort_recent_cb (GsApp *app1,
+                                GsApp *app2,
+                                gpointer user_data)
+{
+       if (gs_app_get_release_date (app1) < gs_app_get_release_date (app2))
+               return 1;
+       if (gs_app_get_release_date (app1) == gs_app_get_release_date (app2))
+               return g_strcmp0 (gs_app_get_name (app1), gs_app_get_name (app2));
+       return -1;
+}
+
 static void
 gs_overview_page_get_recent_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
 {
@@ -198,7 +210,7 @@ gs_overview_page_get_recent_cb (GObject *source_object, GAsyncResult *res, gpoin
                goto out;
        }
 
-       gs_app_list_randomize (list);
+       gs_app_list_sort (list, gs_overview_page_sort_recent_cb, NULL);
 
        gs_widget_remove_all (self->box_recent, (GsRemoveFunc) gtk_flow_box_remove);
 
@@ -515,7 +527,6 @@ gs_overview_page_load (GsOverviewPage *self)
                self->loading_recent = TRUE;
                plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_RECENT,
                                                 "age", (guint64) (60 * 60 * 24 * 60),
-                                                "max-results", 20,
                                                 "refine-flags", GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING |
                                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON,
                                                 "dedupe-flags", GS_APP_LIST_FILTER_FLAG_PREFER_INSTALLED |


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]