Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 167f9601 authored by Carl's avatar Carl Committed by GitHub
Browse files

Merge pull request #999 from uazo/fix-963

fix menu items display with 6 columns + fix disappear after exiting 
parents bfdcef79 6c53bb33
Loading
Loading
Loading
Loading
+122 −25
Original line number Diff line number Diff line
@@ -3,14 +3,17 @@ Date: Thu, 18 Feb 2021 21:22:52 +0100
Subject: Add menu item to bookmark all tabs

---
 chrome/android/java/res/menu/main_menu.xml    |  6 ++
 .../java/res/menu/main_menu_regroup.xml       |  3 +
 .../chrome/browser/ChromeTabbedActivity.java  | 23 +++++++
 chrome/android/java/res/menu/main_menu.xml    |  7 +++
 .../java/res/menu/main_menu_regroup.xml       |  4 ++
 .../chrome/browser/ChromeTabbedActivity.java  | 26 ++++++++
 .../AppMenuPropertiesDelegateImpl.java        |  2 +-
 .../browser/bookmarks/BookmarkBridge.java     | 62 +++++++++++++++++++
 .../browser/bookmarks/BookmarkUtils.java      |  4 ++
 .../android/bookmarks/bookmark_bridge.cc      | 17 +++++
 .../android/bookmarks/bookmark_bridge.h       |  4 ++
 .../bookmarks/chrome_bookmark_client.cc       |  2 +
 .../java/res/layout/icon_row_menu_item.xml    |  4 ++
 .../browser/ui/appmenu/AppMenuAdapter.java    | 13 +++-
 .../strings/android_chrome_strings.grd        |  3 +
 components/bookmark_bar_strings.grdp          |  6 ++
 .../browser/bookmark_load_details.cc          |  4 ++
@@ -19,22 +22,24 @@ Subject: Add menu item to bookmark all tabs
 components/bookmarks/browser/bookmark_model.h |  7 +++
 components/bookmarks/browser/bookmark_node.cc | 13 ++++
 components/bookmarks/browser/bookmark_node.h  |  5 ++
 16 files changed, 163 insertions(+), 1 deletion(-)
 .../styles/android/java/res/values/dimens.xml |  2 +-
 20 files changed, 184 insertions(+), 6 deletions(-)

diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -57,6 +57,9 @@
         <item android:id="@+id/all_bookmarks_menu_id"
             android:title="@string/menu_bookmarks"
             android:icon="@drawable/btn_star_filled" />
@@ -28,6 +28,10 @@
                 android:title="@string/accessibility_menu_bookmark"
                 android:titleCondensed="@string/menu_bookmark"
                 android:icon="@drawable/btn_star"/>
+              <item android:id="@+id/bookmark_all_tabs_menu_id"
+            android:title="@string/menu_bookmark_all_tabs"
+                android:title="@string/accessibility_menu_bookmark"
+                android:titleCondensed="@string/menu_bookmark_all_tabs"
+                android:icon="@drawable/ic_folder_blue_24dp" />
         <item android:id="@+id/recent_tabs_menu_id"
             android:title="@string/menu_recent_tabs"
             android:icon="@drawable/devices_black_24dp" />
@@ -146,6 +149,9 @@
               <item android:id="@+id/offline_page_id"
                 android:title="@string/download_page"
                 android:titleCondensed="@string/menu_download"
@@ -146,6 +150,9 @@
         <item android:id="@+id/track_prices_row_menu_id"
             android:title="@string/menu_track_prices"
             android:icon="@drawable/ic_trending_down_black" />
@@ -47,12 +52,13 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml
--- a/chrome/android/java/res/menu/main_menu_regroup.xml
+++ b/chrome/android/java/res/menu/main_menu_regroup.xml
@@ -32,6 +32,9 @@
@@ -32,6 +32,10 @@
                 android:title="@string/accessibility_menu_bookmark"
                 android:titleCondensed="@string/menu_bookmark"
                 android:icon="@drawable/btn_star"/>
+              <item android:id="@+id/bookmark_all_tabs_menu_id"
+                android:title="@string/menu_bookmark_all_tabs"
+                android:title="@string/accessibility_menu_bookmark"
+                android:titleCondensed="@string/menu_bookmark_all_tabs"
+                android:icon="@drawable/ic_folder_blue_24dp" />
               <item android:id="@+id/offline_page_id"
                 android:title="@string/download_page"
@@ -78,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
         } else if (id == R.id.close_all_incognito_tabs_menu_id) {
             // Close only incognito tabs
             getTabModelSelector().getModel(true).closeAllTabs();
@@ -1868,6 +1872,25 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1868,6 +1872,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
         mTabModalHandler.onOmniboxFocusChanged(hasFocus);
     }
 
@@ -91,6 +97,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+        }
+
+        final BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
+        final BookmarkModel bookmarkModel = new BookmarkModel();
+                bookmarkModel.finishLoadingBookmarkModel(() -> {
+            for (int i = 0; i < tabModel.getCount(); i++) {
+                Tab tab = tabModel.getTabAt(i);
+                if (tab.isNativePage()) {
@@ -99,11 +107,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+                bridge.addToTabsCollection(this, tab);
+            }
+            bridge.finishedAddingToTabsCollection(this, getSnackbarManager());
+        });
+    }
+
     private void recordLauncherShortcutAction(boolean isIncognito) {
         if (isIncognito) {
             RecordUserAction.record("Android.LauncherShortcut.NewIncognitoTab");
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -371,7 +371,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
             if (shouldShowThreeButtonActionBar()) {
                 assert actionBar.size() == 3;
             } else {
-                assert actionBar.size() == 5;
+                assert actionBar.size() == 6;
             }
         }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -306,6 +327,70 @@ diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser
   }
 
   return false;
diff --git a/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml b/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml
--- a/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml
+++ b/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml
@@ -30,4 +30,8 @@
     <org.chromium.ui.widget.ChromeImageButton
         android:id="@+id/button_five"
         style="@style/OverflowMenuButton" />
+
+    <org.chromium.ui.widget.ChromeImageButton
+        android:id="@+id/button_six"
+        style="@style/OverflowMenuButton" />
 </LinearLayout>
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java
--- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java
+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java
@@ -55,7 +55,7 @@ import java.util.Map;
  */
 class AppMenuAdapter extends BaseAdapter {
     @IntDef({MenuItemType.STANDARD, MenuItemType.TITLE_BUTTON, MenuItemType.THREE_BUTTON,
-            MenuItemType.FOUR_BUTTON, MenuItemType.FIVE_BUTTON})
+            MenuItemType.FOUR_BUTTON, MenuItemType.FIVE_BUTTON, MenuItemType.SIX_BUTTON})
     @Retention(RetentionPolicy.SOURCE)
     @VisibleForTesting
     @interface MenuItemType {
@@ -80,16 +80,18 @@ class AppMenuAdapter extends BaseAdapter {
          * Menu item that has five buttons. Every one of these buttons is displayed as an icon.
          */
         int FIVE_BUTTON = 4;
+
+        int SIX_BUTTON = 5;
         /**
          * The number of view types specified above.  If you add a view type you MUST increment
          * this.
          */
-        int NUM_ENTRIES = 5;
+        int NUM_ENTRIES = 6;
     }
 
     /** IDs of all of the buttons in icon_row_menu_item.xml. */
     private static final int[] BUTTON_IDS = {R.id.button_one, R.id.button_two, R.id.button_three,
-            R.id.button_four, R.id.button_five};
+            R.id.button_four, R.id.button_five, R.id.button_six};
 
     /** MenuItem Animation Constants */
     private static final int ENTER_ITEM_DURATION_MS = 350;
@@ -152,6 +154,8 @@ class AppMenuAdapter extends BaseAdapter {
             return MenuItemType.FOUR_BUTTON;
         } else if (viewCount == 5) {
             return MenuItemType.FIVE_BUTTON;
+        } else if (viewCount == 6) {
+            return MenuItemType.SIX_BUTTON;
         }
         return MenuItemType.STANDARD;
     }
@@ -207,6 +211,9 @@ class AppMenuAdapter extends BaseAdapter {
             case MenuItemType.FIVE_BUTTON:
                 convertView = createMenuItemRow(convertView, parent, item, 5, itemViewType);
                 break;
+            case MenuItemType.SIX_BUTTON:
+                convertView = createMenuItemRow(convertView, parent, item, 6, itemViewType);
+                break;
             case MenuItemType.TITLE_BUTTON: {
                 assert item.hasSubMenu();
                 final MenuItem titleItem = item.getSubMenu().getItem(0);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -478,6 +563,18 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
 
   // Constructor is private to disallow the construction of permanent nodes
   // other than the well-known ones, see factory methods.
diff --git a/components/browser_ui/styles/android/java/res/values/dimens.xml b/components/browser_ui/styles/android/java/res/values/dimens.xml
--- a/components/browser_ui/styles/android/java/res/values/dimens.xml
+++ b/components/browser_ui/styles/android/java/res/values/dimens.xml
@@ -5,7 +5,7 @@
 
 <resources>
     <!-- Standard width for overflow menu in Chrome. -->
-    <dimen name="menu_width">258dp</dimen>
+    <dimen name="menu_width">282dp</dimen>
 
     <!-- Button bar dimensions -->
     <dimen name="button_bar_stacked_margin">8dp</dimen>
-- 
2.17.1