Skip to content

Commit

Permalink
Merge pull request #999 from uazo/fix-963
Browse files Browse the repository at this point in the history
fix menu items display with 6 columns + fix disappear after exiting
  • Loading branch information
csagan5 committed Mar 12, 2021
2 parents bfdcef7 + 6c53bb3 commit 167f960
Showing 1 changed file with 122 additions and 25 deletions.
147 changes: 122 additions & 25 deletions build/patches/Add-menu-item-to-bookmark-all-tabs.patch
Original file line number Diff line number Diff line change
Expand Up @@ -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 ++
Expand All @@ -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" />
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
+ android:title="@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 @@
@@ -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/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"
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" />
Expand All @@ -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"
Expand All @@ -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);
}

Expand All @@ -91,19 +97,34 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+ }
+
+ final BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
+ for (int i = 0; i < tabModel.getCount(); i++) {
+ Tab tab = tabModel.getTabAt(i);
+ if (tab.isNativePage()) {
+ continue;
+ final BookmarkModel bookmarkModel = new BookmarkModel();
+ bookmarkModel.finishLoadingBookmarkModel(() -> {
+ 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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

0 comments on commit 167f960

Please sign in to comment.