Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| index 52b22c66c2924360d0d4eb5c67eaff0157e89ea0..82fb4f0ece09c4949ca14ddddbdfc66d884375f4 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| @@ -97,6 +97,7 @@ import org.chromium.chrome.browser.snackbar.LoFiBarPopupController; |
| import org.chromium.chrome.browser.snackbar.SnackbarManager; |
| import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; |
| import org.chromium.chrome.browser.sync.ProfileSyncService; |
| +import org.chromium.chrome.browser.tab.ChromeTab; |
| import org.chromium.chrome.browser.tab.EmptyTabObserver; |
| import org.chromium.chrome.browser.tab.Tab; |
| import org.chromium.chrome.browser.tab.TabObserver; |
| @@ -211,6 +212,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| private OnPreDrawListener mFirstDrawListener; |
| + protected int mThemeColor; |
| + |
| private final Locale mCurrentLocale = Locale.getDefault(); |
| private AssistStatusHandler mAssistStatusHandler; |
| @@ -498,6 +501,27 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| public void onCrash(Tab tab, boolean sadTabShown) { |
| postDeferredStartupIfNeeded(); |
| } |
| + |
| + @Override |
| + public void onDidChangeThemeColor(int color) { |
|
David Trainor- moved to gerrit
2015/07/31 21:07:59
It's sad that we can't actually rely on color here
Yusuf
2015/07/31 21:12:14
Yeah... It is mostly the security related bits tha
Yusuf
2015/08/03 05:53:28
Abandoning this in favor of https://codereview.chr
|
| + checkThemeColorUpdate(); |
| + } |
| + |
| + @Override |
| + public void onWebContentsSwapped(Tab tab, boolean didStartLoad, boolean didFinishLoad) { |
| + if (!didStartLoad) return; |
| + checkThemeColorUpdate(); |
| + } |
| + |
| + @Override |
| + public void onSSLStateUpdated(Tab tab) { |
| + checkThemeColorUpdate(); |
| + } |
| + |
| + @Override |
| + public void onDidAttachInterstitialPage(Tab tab) { |
| + checkThemeColorUpdate(); |
| + } |
| }; |
| if (mAssistStatusHandler != null) { |
| @@ -505,6 +529,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| } |
| } |
| + private void checkThemeColorUpdate() { |
| + if (getActivityTab() == null) return; |
| + int themeColor = ChromeTab.fromTab(getActivityTab()).getThemeColor(); |
| + if (mThemeColor == themeColor) return; |
| + mThemeColor = themeColor; |
| + onThemeColorUpdate(); |
| + } |
| + |
| @Override |
| public void onStartWithNative() { |
| super.onStartWithNative(); |
| @@ -1450,4 +1482,15 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| @Override |
| public void onSceneChange(Layout layout) { } |
| + |
| + /** |
| + * Gets called when the theme color corresponding to current tab changes. |
| + */ |
| + protected void onThemeColorUpdate() { |
| + if (mToolbarManager == null) return; |
| + mToolbarManager.updatePrimaryColor(mThemeColor); |
| + ControlContainer controlContainer = |
| + (ControlContainer) findViewById(R.id.control_container); |
| + controlContainer.getToolbarResourceAdapter().invalidate(null); |
| + } |
| } |