[gnome-software/wip/ubuntu-3-26: 32/37] snap: Only feature snaps
- From: Iain Lane <iainl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/wip/ubuntu-3-26: 32/37] snap: Only feature snaps
- Date: Wed, 4 Oct 2017 16:36:56 +0000 (UTC)
commit f3d38b53aeb5cee87ce91daedbe83f42f07dd717
Author: Robert Ancell <robert ancell canonical com>
Date: Wed Aug 9 15:43:02 2017 +1200
snap: Only feature snaps
Run after the other plugins that populate featured/popular apps and remove
them when we set ours.
plugins/snap/gs-plugin-snap.c | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c
index 1b95f93..ae3ae27 100644
--- a/plugins/snap/gs-plugin-snap.c
+++ b/plugins/snap/gs-plugin-snap.c
@@ -75,11 +75,13 @@ gs_plugin_initialize (GsPlugin *plugin)
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "desktop-categories");
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "ubuntu-reviews");
+ gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "appstream");
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_BETTER_THAN, "packagekit");
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_BEFORE, "icons");
/* Override hardcoded popular apps */
- gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_BEFORE, "hardcoded-popular");
+ gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "hardcoded-popular");
+ gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "hardcoded-featured");
/* set plugin flags */
gs_plugin_add_flags (plugin, GS_PLUGIN_FLAGS_GLOBAL_CACHE);
@@ -370,6 +372,12 @@ is_banner_icon_image (const gchar *filename)
return g_regex_match_simple ("^banner-icon(?:_[a-zA-Z0-9]{7})?\\.(?:png|jpg)$", filename, 0, 0);
}
+static gboolean
+remove_cb (GsApp *app, gpointer user_data)
+{
+ return FALSE;
+}
+
gboolean
gs_plugin_add_featured (GsPlugin *plugin,
GsAppList *list,
@@ -438,6 +446,8 @@ gs_plugin_add_featured (GsPlugin *plugin,
background_css->str);
gs_app_set_metadata (app, "GnomeSoftware::FeatureTile-css", css);
+ /* replace any other featured apps with our one */
+ gs_app_list_filter (list, remove_cb, NULL);
gs_app_list_add (list, app);
return TRUE;
@@ -456,6 +466,9 @@ gs_plugin_add_popular (GsPlugin *plugin,
if (snaps == NULL)
return FALSE;
+ /* replace any other popular apps with our one */
+ gs_app_list_filter (list, remove_cb, NULL);
+
/* skip first snap - it is used as the featured app */
for (i = 1; i < snaps->len; i++) {
g_autoptr(GsApp) app = snap_to_app (plugin, g_ptr_array_index (snaps, i));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]