From 8bfedbb387ecebf4f7cde31ea72904fff4457447 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 12 Dec 2023 16:12:06 +0800 Subject: [PATCH] Add support for AppStream 1.0 (#102) --- meson.build | 3 +++ src/MainWindow.vala | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/meson.build b/meson.build index 5c3cf044..395e8162 100644 --- a/meson.build +++ b/meson.build @@ -13,6 +13,9 @@ appstream_dep = dependency ('appstream', version: '>=0.12.10') if appstream_dep.version().version_compare('>=0.15') add_project_arguments('--define=HAS_APPSTREAM_0_15', language:'vala') endif +if appstream_dep.version().version_compare('>=1.0') + add_project_arguments('--define=HAS_APPSTREAM_1_0', language:'vala') +endif add_project_arguments('-DGETTEXT_PACKAGE="@0@"'.format (meson.project_name()), language:'c') diff --git a/src/MainWindow.vala b/src/MainWindow.vala index f0dfcb11..37715bf5 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -141,7 +141,11 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { foreach (var app in app_entries) { var component_table = new HashTable (str_hash, str_equal); +#if HAS_APPSTREAM_1_0 + appstream_pool.get_components_by_id (app).as_array ().foreach ((component) => { +#else appstream_pool.get_components_by_id (app).foreach ((component) => { +#endif if (component_table[component.id] == null) { component_table[component.id] = component; @@ -185,7 +189,11 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { placeholder_stack.visible_child = placeholder; }); +#if HAS_APPSTREAM_1_0 + appstream_pool.get_components_by_id ("io.elementary.switchboard").as_array ().foreach ((component) => { +#else appstream_pool.get_components_by_id ("io.elementary.switchboard").foreach ((component) => { +#endif component.get_addons ().foreach ((addon) => { var repo_row = new RepoRow ( addon.name, @@ -198,7 +206,11 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { }); }); +#if HAS_APPSTREAM_1_0 + appstream_pool.get_components_by_id ("io.elementary.wingpanel").as_array ().foreach ((component) => { +#else appstream_pool.get_components_by_id ("io.elementary.wingpanel").foreach ((component) => { +#endif component.get_addons ().foreach ((addon) => { var repo_row = new RepoRow ( addon.name, @@ -362,7 +374,11 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { var components = new GenericArray (); new Thread ("get_compulsory_for_desktop", () => { +#if HAS_APPSTREAM_1_0 + appstream_pool.get_components ().as_array ().foreach ((component) => { +#else appstream_pool.get_components ().foreach ((component) => { +#endif component.get_compulsory_for_desktops ().foreach ((desktop) => { if (desktop == Environment.get_variable ("XDG_CURRENT_DESKTOP")) { components.add (component);