[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
This commit is contained in:
Artem Samoilenko
2024-05-03 16:54:07 -04:00
committed by mkarolin
parent ef5f867ac3
commit 48db2d239b
6 changed files with 36 additions and 10 deletions
@@ -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);
}
@@ -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;
@@ -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);
}
@@ -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();
}
@@ -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,
@@ -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();
}