about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch')
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch234
1 files changed, 234 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
new file mode 100644
index 000000000000..3e7aa3efc126
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
@@ -0,0 +1,234 @@
+From b1e09653d755ca6ffd03a1e3e67750e6bcc2bc6f Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Wed, 22 Sep 2021 11:54:48 +0800
+Subject: [PATCH 2/2] Drop homepage banner
+
+---
+ src/Views/Homepage.vala | 181 +---------------------------------------
+ 1 file changed, 1 insertion(+), 180 deletions(-)
+
+diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
+index 576fc02c..80a1d221 100644
+--- a/src/Views/Homepage.vala
++++ b/src/Views/Homepage.vala
+@@ -31,67 +31,12 @@ public class AppCenter.Homepage : AbstractView {
+     public bool viewing_package { get; private set; default = false; }
+ 
+     public AppStream.Category currently_viewed_category;
+-    private Hdy.Carousel banner_carousel;
+-    private Gtk.Revealer banner_revealer;
+-    private Gtk.FlowBox recently_updated_carousel;
+-    private Gtk.Revealer recently_updated_revealer;
+-
+-    private uint banner_timeout_id;
+ 
+     construct {
+-        banner_carousel = new Hdy.Carousel () {
+-            allow_long_swipes = true
+-        };
+-
+-        var banner_event_box = new Gtk.EventBox ();
+-        banner_event_box.events |= Gdk.EventMask.ENTER_NOTIFY_MASK;
+-        banner_event_box.events |= Gdk.EventMask.LEAVE_NOTIFY_MASK;
+-        banner_event_box.add (banner_carousel);
+-
+-        var banner_dots = new Hdy.CarouselIndicatorDots () {
+-            carousel = banner_carousel
+-        };
+-
+-        var banner_grid = new Gtk.Grid () {
+-            orientation = Gtk.Orientation.VERTICAL
+-        };
+-        banner_grid.add (banner_event_box);
+-        banner_grid.add (banner_dots);
+-
+-        banner_revealer = new Gtk.Revealer ();
+-        banner_revealer.add (banner_grid);
+-
+-        var recently_updated_label = new Granite.HeaderLabel (_("Recently Updated")) {
+-            margin_start = 12
+-        };
+-
+-        recently_updated_carousel = new Gtk.FlowBox () {
+-            activate_on_single_click = true,
+-            column_spacing = 12,
+-            row_spacing = 12,
+-            homogeneous = true,
+-            max_children_per_line = 5,
+-            min_children_per_line = 3
+-        };
+-
+-        var recently_updated_grid = new Gtk.Grid () {
+-            margin_end = 12,
+-            margin_start = 12
+-        };
+-        recently_updated_grid.attach (recently_updated_label, 0, 0);
+-        recently_updated_grid.attach (recently_updated_carousel, 0, 1);
+-
+-        recently_updated_revealer = new Gtk.Revealer ();
+-        recently_updated_revealer.add (recently_updated_grid );
+-
+-        var categories_label = new Granite.HeaderLabel (_("Categories")) {
+-            margin_start = 24,
+-            margin_top = 24
+-        };
+-
+         category_flow = new Widgets.CategoryFlowBox () {
+             margin_start = 12,
+             margin_end =12,
++            margin_top = 12,
+             valign = Gtk.Align.START
+         };
+ 
+@@ -99,9 +44,6 @@ public class AppCenter.Homepage : AbstractView {
+             column_spacing = 24,
+             orientation = Gtk.Orientation.VERTICAL
+         };
+-        grid.add (banner_revealer);
+-        grid.add (recently_updated_revealer);
+-        grid.add (categories_label);
+         grid.add (category_flow);
+ 
+         scrolled_window = new Gtk.ScrolledWindow (null, null) {
+@@ -111,19 +53,6 @@ public class AppCenter.Homepage : AbstractView {
+ 
+         add (scrolled_window);
+ 
+-        var local_package = App.local_package;
+-        if (local_package != null) {
+-            var banner = new Widgets.Banner (local_package);
+-
+-            banner_carousel.prepend (banner);
+-
+-            banner.clicked.connect (() => {
+-                show_package (local_package);
+-            });
+-        }
+-
+-        load_banners_and_carousels.begin ();
+-
+         category_flow.child_activated.connect ((child) => {
+             var item = child as Widgets.CategoryItem;
+             if (item != null) {
+@@ -159,94 +88,8 @@ public class AppCenter.Homepage : AbstractView {
+                         }
+                     }
+                 }
+-
+-                return GLib.Source.REMOVE;
+             });
+         });
+-
+-        banner_event_box.enter_notify_event.connect (() => {
+-            banner_timeout_stop ();
+-        });
+-
+-        banner_event_box.leave_notify_event.connect (() => {
+-            banner_timeout_start ();
+-        });
+-
+-        recently_updated_carousel.child_activated.connect ((child) => {
+-            var package_row_grid = (AppCenter.Widgets.ListPackageRowGrid) child.get_child ();
+-
+-            show_package (package_row_grid.package);
+-        });
+-    }
+-
+-    private async void load_banners_and_carousels () {
+-        unowned var fp_client = AppCenterCore.FlatpakBackend.get_default ();
+-        var packages_by_release_date = fp_client.get_featured_packages_by_release_date ();
+-        var packages_in_banner = new Gee.LinkedList<AppCenterCore.Package> ();
+-
+-        int package_count = 0;
+-        foreach (var package in packages_by_release_date) {
+-            if (package_count >= MAX_PACKAGES_IN_BANNER) {
+-                break;
+-            }
+-
+-            var installed = false;
+-            foreach (var origin_package in package.origin_packages) {
+-                try {
+-                    if (yield origin_package.backend.is_package_installed (origin_package)) {
+-                        installed = true;
+-                        break;
+-                    }
+-                } catch (Error e) {
+-                    continue;
+-                }
+-            }
+-
+-            if (!installed) {
+-                packages_in_banner.add (package);
+-                package_count++;
+-            }
+-        }
+-
+-        foreach (var package in packages_in_banner) {
+-            var banner = new Widgets.Banner (package);
+-            banner.clicked.connect (() => {
+-                show_package (package);
+-            });
+-
+-            banner_carousel.add (banner);
+-        }
+-
+-        banner_carousel.show_all ();
+-        banner_revealer.reveal_child = true;
+-        banner_timeout_start ();
+-
+-        foreach (var package in packages_by_release_date) {
+-            if (recently_updated_carousel.get_children ().length () >= MAX_PACKAGES_IN_CAROUSEL) {
+-                break;
+-            }
+-
+-            var installed = false;
+-            foreach (var origin_package in package.origin_packages) {
+-                try {
+-                    if (yield origin_package.backend.is_package_installed (origin_package)) {
+-                        installed = true;
+-                        break;
+-                    }
+-                } catch (Error e) {
+-                    continue;
+-                }
+-            }
+-
+-            if (!installed && !(package in packages_in_banner) && !package.is_explicit) {
+-                var package_row = new AppCenter.Widgets.ListPackageRowGrid (package);
+-                recently_updated_carousel.add (package_row);
+-            }
+-        }
+-        recently_updated_carousel.show_all ();
+-        recently_updated_revealer.reveal_child = recently_updated_carousel.get_children ().length () > 0;
+-
+-        page_loaded ();
+     }
+ 
+     public override void show_package (
+@@ -307,26 +150,4 @@ public class AppCenter.Homepage : AbstractView {
+         var apps = client.get_applications_for_category (category);
+         app_list_view.add_packages (apps);
+     }
+-
+-    private void banner_timeout_start () {
+-        banner_timeout_id = Timeout.add (MILLISECONDS_BETWEEN_BANNER_ITEMS, () => {
+-            var new_index = (uint) banner_carousel.position + 1;
+-            var max_index = banner_carousel.n_pages - 1; // 0-based index
+-
+-            if (banner_carousel.position >= max_index) {
+-                new_index = 0;
+-            }
+-
+-            banner_carousel.switch_child (new_index, Granite.TRANSITION_DURATION_OPEN);
+-
+-            return Source.CONTINUE;
+-        });
+-    }
+-
+-    private void banner_timeout_stop () {
+-        if (banner_timeout_id != 0) {
+-            Source.remove (banner_timeout_id);
+-            banner_timeout_id = 0;
+-        }
+-    }
+ }