[gnome-software/1409-add-available-for-fedora-section-to-the-explore-page] flatpak: Implement gs_plugin_add_distro_featured()



commit 66024982566572203aca016c44f4136682e5b56b
Author: Milan Crha <mcrha redhat com>
Date:   Wed Sep 8 15:58:09 2021 +0200

    flatpak: Implement gs_plugin_add_distro_featured()

 plugins/flatpak/gs-flatpak.c        | 21 +++++++++++++++++++++
 plugins/flatpak/gs-flatpak.h        |  4 ++++
 plugins/flatpak/gs-plugin-flatpak.c | 15 +++++++++++++++
 3 files changed, 40 insertions(+)
---
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
index f3e77f041..c5ef9b568 100644
--- a/plugins/flatpak/gs-flatpak.c
+++ b/plugins/flatpak/gs-flatpak.c
@@ -3699,6 +3699,27 @@ gs_flatpak_add_featured (GsFlatpak *self,
        return TRUE;
 }
 
+gboolean
+gs_flatpak_add_distro_featured (GsFlatpak *self,
+                               GsAppList *list,
+                               GCancellable *cancellable,
+                               GError **error)
+{
+       g_autoptr(GsAppList) list_tmp = gs_app_list_new ();
+       g_autoptr(GRWLockReaderLocker) locker = NULL;
+
+       if (!gs_flatpak_rescan_app_data (self, cancellable, error))
+               return FALSE;
+
+       locker = g_rw_lock_reader_locker_new (&self->silo_lock);
+       if (!gs_appstream_add_distro_featured (self->silo, list_tmp, cancellable, error))
+               return FALSE;
+
+       gs_app_list_add_list (list, list_tmp);
+
+       return TRUE;
+}
+
 gboolean
 gs_flatpak_add_alternates (GsFlatpak *self,
                           GsApp *app,
diff --git a/plugins/flatpak/gs-flatpak.h b/plugins/flatpak/gs-flatpak.h
index 348a49783..95a937d1f 100644
--- a/plugins/flatpak/gs-flatpak.h
+++ b/plugins/flatpak/gs-flatpak.h
@@ -120,6 +120,10 @@ gboolean   gs_flatpak_add_featured         (GsFlatpak              *self,
                                                 GsAppList              *list,
                                                 GCancellable           *cancellable,
                                                 GError                 **error);
+gboolean       gs_flatpak_add_distro_featured  (GsFlatpak              *self,
+                                                GsAppList              *list,
+                                                GCancellable           *cancellable,
+                                                GError                 **error);
 gboolean       gs_flatpak_add_alternates       (GsFlatpak              *self,
                                                 GsApp                  *app,
                                                 GsAppList              *list,
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
index 9bdfa80bf..c265ce951 100644
--- a/plugins/flatpak/gs-plugin-flatpak.c
+++ b/plugins/flatpak/gs-plugin-flatpak.c
@@ -1575,6 +1575,21 @@ gs_plugin_add_featured (GsPlugin *plugin,
        return TRUE;
 }
 
+gboolean
+gs_plugin_add_distro_featured (GsPlugin *plugin,
+                              GsAppList *list,
+                              GCancellable *cancellable,
+                              GError **error)
+{
+       GsPluginData *priv = gs_plugin_get_data (plugin);
+       for (guint i = 0; i < priv->flatpaks->len; i++) {
+               GsFlatpak *flatpak = g_ptr_array_index (priv->flatpaks, i);
+               if (!gs_flatpak_add_distro_featured (flatpak, list, cancellable, error))
+                       return FALSE;
+       }
+       return TRUE;
+}
+
 gboolean
 gs_plugin_add_recent (GsPlugin *plugin,
                      GsAppList *list,


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