From 48db2d239b75d95ed74f5019fe758ef920b69a1b Mon Sep 17 00:00:00 2001 From: Artem Samoilenko Date: Tue, 2 Apr 2024 11:49:09 -0400 Subject: [PATCH] [Android] Update toolbar icon tint on activity focus change Chromium change: https://source.chromium.org/chromium/chromium/src/+/5baed2df78dc2b19f5a5e1719a16269daee60ca4 [TSLO] Update toolbar icon tint on activity focus change Update the *ThemeColorProvider classes to observe a top resumed activity change to update the toolbar icon tints on an activity focus change. Update TintObserver#onTintChanged to additionally accept an activityFocusTint that may be used by interested clients to update the tint in desktop windowing mode as needed. Demo: http://screencast/cast/NTA1NzI3MjMzNzEzNzY2NHwyYTM4NGQyNy1jNw Bug: 328054353 --- .../browser/toolbar/BraveHomeButton.java | 6 +++++- .../browser/toolbar/BraveToolbarManager.java | 2 +- .../toolbar/bottom/BookmarksButton.java | 6 +++++- .../bottom/BottomToolbarNewTabButton.java | 6 +++++- .../BrowsingModeBottomToolbarCoordinator.java | 20 ++++++++++++++----- .../toolbar/bottom/SearchAccelerator.java | 6 +++++- 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/toolbar/BraveHomeButton.java b/android/java/org/chromium/chrome/browser/toolbar/BraveHomeButton.java index 6b80968c76a..4443691a043 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/BraveHomeButton.java +++ b/android/java/org/chromium/chrome/browser/toolbar/BraveHomeButton.java @@ -16,6 +16,7 @@ import androidx.core.widget.ImageViewCompat; import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.theme.ThemeColorProvider.TintObserver; import org.chromium.chrome.browser.toolbar.home_button.HomeButton; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; /** * Brave's extension of HomeButton. @@ -37,7 +38,10 @@ public class BraveHomeButton extends HomeButton implements TintObserver { } @Override - public void onTintChanged(ColorStateList tint, int brandedColorScheme) { + public void onTintChanged( + ColorStateList tint, + ColorStateList activityFocusTint, + @BrandedColorScheme int brandedColorScheme) { ImageViewCompat.setImageTintList(this, tint); } diff --git a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java index d293251d706..c8e16701eee 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java +++ b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java @@ -32,7 +32,6 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; -import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager; import org.chromium.chrome.browser.findinpage.FindToolbarManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; @@ -47,6 +46,7 @@ import org.chromium.chrome.browser.readaloud.ReadAloudController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabObscuringHandler; +import org.chromium.chrome.browser.tab_ui.TabContentManager; import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; import org.chromium.chrome.browser.tabmodel.TabCreatorManager; import org.chromium.chrome.browser.tabmodel.TabModelSelector; diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java index 0cc651fafd2..89f61bca423 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java @@ -18,6 +18,7 @@ import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.theme.ThemeColorProvider.ThemeColorObserver; import org.chromium.chrome.browser.theme.ThemeColorProvider.TintObserver; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.widget.ChromeImageButton; /** @@ -51,7 +52,10 @@ public class BookmarksButton extends ChromeImageButton implements ThemeColorObse public void onThemeColorChanged(int color, boolean shouldAnimate) {} @Override - public void onTintChanged(ColorStateList tint, int brandedColorScheme) { + public void onTintChanged( + ColorStateList tint, + ColorStateList activityFocusTint, + @BrandedColorScheme int brandedColorScheme) { mCurrentTint = tint; ImageViewCompat.setImageTintList(this, tint); } diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java index 6ffd94a263f..feab75c45f1 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java @@ -21,6 +21,7 @@ import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.theme.ThemeColorProvider.ThemeColorObserver; import org.chromium.chrome.browser.theme.ThemeColorProvider.TintObserver; import org.chromium.chrome.browser.theme.ThemeUtils; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.widget.ChromeImageButton; /** @@ -93,7 +94,10 @@ class BottomToolbarNewTabButton extends ChromeImageButton } @Override - public void onTintChanged(ColorStateList tint, int brandedColorScheme) { + public void onTintChanged( + ColorStateList tint, + ColorStateList activityFocusTint, + @BrandedColorScheme int brandedColorScheme) { ImageViewCompat.setImageTintList(this, tint); updateBackground(); } diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java index d968eec5f74..303c984c441 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java @@ -196,19 +196,25 @@ public class BrowsingModeBottomToolbarCoordinator { mNewTabButton.setThemeColorProvider(themeColorProvider); mNewTabButton.setIncognitoStateProvider(incognitoStateProvider); mNewTabButton.onTintChanged( - mThemeColorProvider.getTint(), mThemeColorProvider.getBrandedColorScheme()); + mThemeColorProvider.getTint(), + mThemeColorProvider.getTint(), + mThemeColorProvider.getBrandedColorScheme()); } if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { mBraveHomeButton.setThemeColorProvider(themeColorProvider); mBraveHomeButton.onTintChanged( - mThemeColorProvider.getTint(), mThemeColorProvider.getBrandedColorScheme()); + mThemeColorProvider.getTint(), + mThemeColorProvider.getTint(), + mThemeColorProvider.getBrandedColorScheme()); } mSearchAccelerator.setThemeColorProvider(themeColorProvider); mSearchAccelerator.setIncognitoStateProvider(incognitoStateProvider); mSearchAccelerator.onTintChanged( - mThemeColorProvider.getTint(), mThemeColorProvider.getBrandedColorScheme()); + mThemeColorProvider.getTint(), + mThemeColorProvider.getTint(), + mThemeColorProvider.getBrandedColorScheme()); if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { mTabSwitcherButtonCoordinator.setTabSwitcherListener(tabSwitcherListener); @@ -219,11 +225,15 @@ public class BrowsingModeBottomToolbarCoordinator { mBookmarkButton.setThemeColorProvider(themeColorProvider); mBookmarkButton.onTintChanged( - mThemeColorProvider.getTint(), mThemeColorProvider.getBrandedColorScheme()); + mThemeColorProvider.getTint(), + mThemeColorProvider.getTint(), + mThemeColorProvider.getBrandedColorScheme()); mThemeColorProvider.addTintObserver(mMenuButton); mMenuButton.onTintChanged( - mThemeColorProvider.getTint(), mThemeColorProvider.getBrandedColorScheme()); + mThemeColorProvider.getTint(), + mThemeColorProvider.getTint(), + mThemeColorProvider.getBrandedColorScheme()); new OneShotCallback<>( menuButtonHelperSupplier, diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java index 15955ade832..4df44b6564b 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java @@ -22,6 +22,7 @@ import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.theme.ThemeColorProvider.ThemeColorObserver; import org.chromium.chrome.browser.theme.ThemeColorProvider.TintObserver; import org.chromium.chrome.browser.theme.ThemeUtils; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.widget.ChromeImageButton; /** @@ -84,7 +85,10 @@ class SearchAccelerator extends ChromeImageButton } @Override - public void onTintChanged(ColorStateList tint, int brandedColorScheme) { + public void onTintChanged( + ColorStateList tint, + ColorStateList activityFocusTint, + @BrandedColorScheme int brandedColorScheme) { ImageViewCompat.setImageTintList(this, tint); updateBackground(); }