From: uazo 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 @SuppressWarnings("HidingField") private @Nullable SelectionDelegate 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 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 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 BOOKMARK_MODEL = + new WritableObjectPropertyKey<>(); static final WritableObjectPropertyKey SELECTION_DELEGATE = new WritableObjectPropertyKey<>(); @@ -72,6 +75,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey FAKE_SELECTION_STATE_CHANGE = new WritableObjectPropertyKey<>(/* skipEquality= */ true); + /** Bookmark state properties. */ + static final WritableObjectPropertyKey CURRENT_FOLDER = + new WritableObjectPropertyKey<>(/* skipEquality= */ true); + /** Callables to delegate business logic back to the mediator */ static final WritableObjectPropertyKey> 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)); --