Files
cromite/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch
2026-02-01 15:18:16 +01:00

142 lines
8.5 KiB
Diff

From: uazo <uazo@users.noreply.github.com>
Date: Thu, 18 Jul 2024 14:03:12 +0000
Subject: Restore BookmarkToolbar#setCurrentFolder
restore https://chromium-review.googlesource.com/c/chromium/src/+/5554182
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../chrome/browser/bookmarks/BookmarkToolbar.java | 11 +++++++++++
.../browser/bookmarks/BookmarkToolbarCoordinator.java | 1 +
.../browser/bookmarks/BookmarkToolbarMediator.java | 1 +
.../browser/bookmarks/BookmarkToolbarProperties.java | 9 +++++++++
.../browser/bookmarks/BookmarkToolbarViewBinder.java | 4 ++++
5 files changed, 26 insertions(+)
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
@@ -19,6 +19,7 @@ import androidx.core.view.MenuCompat;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode;
+import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.browser_ui.util.ToolbarUtils;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar;
@@ -38,6 +39,8 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
@SuppressWarnings("HidingField")
private @Nullable SelectionDelegate<BookmarkId> mSelectionDelegate;
+ private BookmarkModel mBookmarkModel;
+ private @Nullable BookmarkItem mCurrentFolder;
private boolean mEditButtonVisible;
private boolean mNewFolderButtonVisible;
private boolean mNewFolderButtonEnabled;
@@ -67,6 +70,10 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
setOnMenuItemClickListener(this);
}
+ void setBookmarkModel(BookmarkModel bookmarkModel) {
+ mBookmarkModel = bookmarkModel;
+ }
+
void setSelectionDelegate(SelectionDelegate selectionDelegate) {
mSelectionDelegate = selectionDelegate;
getMenu().setGroupEnabled(R.id.selection_mode_menu_group, true);
@@ -176,6 +183,10 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
getMenu().findItem(id).setChecked(true);
}
+ void setCurrentFolder(BookmarkId folder) {
+ mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
+ }
+
void setNavigateBackRunnable(Runnable navigateBackRunnable) {
mNavigateBackRunnable = navigateBackRunnable;
}
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java
@@ -62,6 +62,7 @@ public class BookmarkToolbarCoordinator {
searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id);
mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build();
+ mModel.set(BookmarkToolbarProperties.BOOKMARK_MODEL, bookmarkModel);
mModel.set(BookmarkToolbarProperties.SELECTION_DELEGATE, selectionDelegate);
mModel.set(BookmarkToolbarProperties.BOOKMARK_UI_MODE, BookmarkUiMode.LOADING);
mModel.set(BookmarkToolbarProperties.IS_DIALOG_UI, isDialogUi);
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -324,6 +324,7 @@ class BookmarkToolbarMediator
@Override
public void onFolderStateSet(@Nullable BookmarkId folder) {
mCurrentFolder = folder;
+ mModel.set(BookmarkToolbarProperties.CURRENT_FOLDER, mCurrentFolder);
BookmarkItem folderItem =
mCurrentFolder == null ? null : mBookmarkModel.getBookmarkById(mCurrentFolder);
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
@@ -8,6 +8,7 @@ import android.view.View;
import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode;
+import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
@@ -24,6 +25,8 @@ import java.util.function.Function;
@NullMarked
class BookmarkToolbarProperties {
/** Dependencies */
+ static final WritableObjectPropertyKey<BookmarkModel> BOOKMARK_MODEL =
+ new WritableObjectPropertyKey<>();
static final WritableObjectPropertyKey<SelectionDelegate> SELECTION_DELEGATE =
new WritableObjectPropertyKey<>();
@@ -72,6 +75,10 @@ class BookmarkToolbarProperties {
static final WritableObjectPropertyKey<Boolean> FAKE_SELECTION_STATE_CHANGE =
new WritableObjectPropertyKey<>(/* skipEquality= */ true);
+ /** Bookmark state properties. */
+ static final WritableObjectPropertyKey<BookmarkId> CURRENT_FOLDER =
+ new WritableObjectPropertyKey<>(/* skipEquality= */ true);
+
/** Callables to delegate business logic back to the mediator */
static final WritableObjectPropertyKey<Function<Integer, Boolean>> MENU_ID_CLICKED_FUNCTION =
new WritableObjectPropertyKey<>();
@@ -94,6 +101,8 @@ class BookmarkToolbarProperties {
NEW_FOLDER_BUTTON_VISIBLE,
NEW_FOLDER_BUTTON_ENABLED,
NAVIGATION_BUTTON_STATE,
+ BOOKMARK_MODEL,
+ CURRENT_FOLDER,
SORT_MENU_IDS,
SORT_MENU_IDS_ENABLED,
CHECKED_SORT_MENU_ID,
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
@@ -16,6 +16,8 @@ class BookmarkToolbarViewBinder {
if (key == BookmarkToolbarProperties.SELECTION_DELEGATE) {
bookmarkToolbar.setSelectionDelegate(
model.get(BookmarkToolbarProperties.SELECTION_DELEGATE));
+ } else if (key == BookmarkToolbarProperties.BOOKMARK_MODEL) {
+ bookmarkToolbar.setBookmarkModel(model.get(BookmarkToolbarProperties.BOOKMARK_MODEL));
} else if (key == BookmarkToolbarProperties.BOOKMARK_UI_MODE) {
bookmarkToolbar.setBookmarkUiMode(
model.get(BookmarkToolbarProperties.BOOKMARK_UI_MODE));
@@ -52,6 +54,8 @@ class BookmarkToolbarViewBinder {
} else if (key == BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID) {
bookmarkToolbar.setCheckedViewMenuId(
model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID));
+ } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) {
+ bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER));
} else if (key == BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE) {
bookmarkToolbar.setNavigateBackRunnable(
model.get(BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE));
--