| 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 8230379bdb88071bdcf433e0d4009ce69bf9ee8a..a32944c32c01c0242e2db569918de3316ff269a8 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
|
| @@ -22,6 +22,7 @@ import android.widget.ImageView;
|
| import android.widget.TextView;
|
|
|
| import org.chromium.base.ApiCompatibilityUtils;
|
| +import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.WindowDelegate;
|
| @@ -50,6 +51,8 @@ import org.chromium.ui.base.WindowAndroid;
|
| */
|
| public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| View.OnLongClickListener {
|
| + private static final int TITLE_ANIM_DELAY_MS = 200;
|
| +
|
| private View mLocationBarFrameLayout;
|
| private View mTitleUrlContainer;
|
| private UrlBar mUrlBar;
|
| @@ -65,6 +68,14 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
|
|
| private CustomTabToolbarAnimationDelegate mAnimDelegate;
|
| private boolean mBackgroundColorSet;
|
| + private long mInitializeTimeStamp;
|
| +
|
| + private Runnable mTitleAnimationStarter = new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mAnimDelegate.startTitleAnimation(getContext());
|
| + }
|
| + };
|
|
|
| /**
|
| * Constructor for getting this class inflated from an xml layout file.
|
| @@ -105,6 +116,7 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| ToolbarTabController tabController, AppMenuButtonHelper appMenuButtonHelper) {
|
| super.initialize(toolbarDataProvider, tabController, appMenuButtonHelper);
|
| updateVisualsForState();
|
| + mInitializeTimeStamp = System.currentTimeMillis();
|
| }
|
|
|
| @Override
|
| @@ -203,7 +215,13 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar,
|
| // It takes some time to parse the title of the webcontent, and before that Tab#getTitle
|
| // always return the url. We postpone the title animation until the title is authentic.
|
| if (mShouldShowTitle && !TextUtils.equals(currentTab.getTitle(), currentTab.getUrl())) {
|
| - mAnimDelegate.startTitleAnimation(getContext());
|
| + long duration = System.currentTimeMillis() - mInitializeTimeStamp;
|
| + if (duration >= TITLE_ANIM_DELAY_MS) {
|
| + mTitleAnimationStarter.run();
|
| + } else {
|
| + ThreadUtils.postOnUiThreadDelayed(mTitleAnimationStarter,
|
| + TITLE_ANIM_DELAY_MS - duration);
|
| + }
|
| }
|
|
|
| mTitleBar.setText(currentTab.getTitle());
|
|
|