fix menu items display with 6 columns + fix disappear after exiting (https://github.com/bromite/bromite/issues/570#issuecomment-782585897)
This commit is contained in:
parent
a55c7672af
commit
6c53bb33b5
1 changed files with 122 additions and 25 deletions
|
@ -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" />
|
||||
+ <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" />
|
||||
|
@ -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,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
|
||||
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue