diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 017e4a8a..5ec04e86 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -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 @@ - -+ - -@@ -146,6 +149,9 @@ +@@ -28,6 +28,10 @@ + android:title="@string/accessibility_menu_bookmark" + android:titleCondensed="@string/menu_bookmark" + android:icon="@drawable/btn_star"/> ++ + @@ -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"/> + { ++ for (int i = 0; i < tabModel.getCount(); i++) { ++ Tab tab = tabModel.getTabAt(i); ++ if (tab.isNativePage()) { ++ continue; ++ } ++ bridge.addToTabsCollection(this, tab); + } -+ bridge.addToTabsCollection(this, tab); -+ } -+ bridge.finishedAddingToTabsCollection(this, getSnackbarManager()); ++ 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 @@ + ++ ++ + +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 @@ + + + +- 258dp ++ 282dp + + + 8dp -- 2.17.1