142 lines
8.5 KiB
Diff
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));
|
|
--
|