From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 9 Apr 2022 23:01:55 +0200
Subject: Bookmarks select all menu entry
Requires: Restore-BookmarkToolbar-setCurrentFolder.patch
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../menu/bookmark_toolbar_menu_improved.xml | 7 +++++++
.../browser/bookmarks/BookmarkToolbar.java | 18 ++++++++++++++++++
.../android/strings/android_chrome_strings.grd | 3 +++
3 files changed, 28 insertions(+)
diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
--- a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
+++ b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
@@ -51,6 +51,13 @@ found in the LICENSE file.
android:title="@string/create_new_folder"
app:showAsAction="ifRoom"
app:iconTint="@color/default_icon_color_secondary_tint_list" />
+
-
void setCurrentFolder(BookmarkId folder) {
mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
enableImportExportMenu();
+ enableSelectAllMenu();
+ }
+
+ void enableSelectAllMenu() {
+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true);
}
void enableImportExportMenu() {
@@ -233,6 +239,17 @@ public class BookmarkToolbar extends SelectableListToolbar
mExportBookmarkRunnable.run();
return true;
}
+ if (menuItem.getItemId() == R.id.select_all_menu_id) {
+ if (mBookmarkModel.isBookmarkModelLoaded()) {
+ List childs = mBookmarkModel.getChildIds(mCurrentFolder.getId());
+ HashSet ids = new HashSet<>(childs.size());
+ for (BookmarkId item : childs) {
+ ids.add(item);
+ }
+ mSelectionDelegate.setSelectedItems(ids);
+ }
+ return true;
+ }
return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId());
}
@@ -255,6 +272,7 @@ public class BookmarkToolbar extends SelectableListToolbar
getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null);
getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null);
+ getMenu().findItem(R.id.select_all_menu_id).setVisible(mCurrentFolder != null);
// SelectableListToolbar will show/hide the entire group.
setEditButtonVisible(mEditButtonVisible);
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
@@ -277,6 +277,9 @@ CHAR_LIMIT guidelines:
Sites
+
+ Select all
+
Import
--