| Index: chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
|
| index 391b0cae5ddd7b50c94ce1701e0e26bf1442bcb1..919c5c6f7bf416fabd5071618c7a31d89fbc7c63 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
|
| @@ -74,6 +74,7 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| private long mInitializeTimeStamp;
|
| private int mState = STATE_DOMAIN_ONLY;
|
| private String mFirstUrl;
|
| + private boolean mShowsOfflinePage = false;
|
|
|
| private Runnable mTitleAnimationStarter = new Runnable() {
|
| @Override
|
| @@ -283,6 +284,7 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| setUrlBarHidden(false);
|
| }
|
| }
|
| + showOfflineBoltIfNecessary();
|
| }
|
|
|
| @Override
|
| @@ -380,6 +382,10 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| ((TintedDrawable) mCustomActionButton.getDrawable()).setTint(
|
| mUseDarkColors ? mDarkModeTint : mLightModeTint);
|
| }
|
| + if (mSecurityButton.getDrawable() instanceof TintedDrawable) {
|
| + ((TintedDrawable) mSecurityButton.getDrawable()).setTint(
|
| + mUseDarkColors ? mDarkModeTint : mLightModeTint);
|
| + }
|
| }
|
|
|
| @Override
|
| @@ -432,6 +438,7 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| @Override
|
| public void updateSecurityIcon(int securityLevel) {
|
| if (mSecurityIconType == securityLevel || mState == STATE_TITLE_ONLY) return;
|
| +
|
| mSecurityIconType = securityLevel;
|
|
|
| if (securityLevel == ConnectionSecurityLevel.NONE) {
|
| @@ -451,6 +458,25 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| mUrlBar.invalidate();
|
| }
|
|
|
| + private void showOfflineBoltIfNecessary() {
|
| + boolean isOfflinePage = getCurrentTab() != null && getCurrentTab().isOfflinePage();
|
| + if (isOfflinePage == mShowsOfflinePage) return;
|
| +
|
| + mShowsOfflinePage = isOfflinePage;
|
| + if (mShowsOfflinePage) {
|
| + // If we are showing an offline page, immediately update icon to offline bolt.
|
| + TintedDrawable bolt = TintedDrawable.constructTintedDrawable(
|
| + getResources(), R.drawable.offline_bolt);
|
| + bolt.setTint(mUseDarkColors ? mDarkModeTint : mLightModeTint);
|
| + mSecurityButton.setImageDrawable(bolt);
|
| + mAnimDelegate.showSecurityButton();
|
| + } else {
|
| + // We are hiding the offline page so connection security information will change.
|
| + mSecurityIconType = ConnectionSecurityLevel.NONE;
|
| + mAnimDelegate.hideSecurityButton();
|
| + }
|
| + }
|
| +
|
| /**
|
| * For extending classes to override and carry out the changes related with the primary color
|
| * for the current tab changing.
|
|
|