diff options
Diffstat (limited to 'src/com/android/browser')
-rw-r--r-- | src/com/android/browser/BaseUi.java | 11 | ||||
-rw-r--r-- | src/com/android/browser/XLargeUi.java | 59 |
2 files changed, 48 insertions, 22 deletions
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index 5898680..71346ae 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -17,8 +17,11 @@ package com.android.browser; import com.android.browser.Tab.LockIcon; +import com.android.browser.UI.DropdownChangeListener; -import android.animation.LayoutTransition; +import android.animation.Animator; +import android.animation.Animator.AnimatorListener; +import android.animation.ObjectAnimator; import android.app.Activity; import android.content.res.Configuration; import android.content.res.Resources; @@ -111,7 +114,6 @@ public abstract class BaseUi implements UI, WebViewFactory { .inflate(R.layout.custom_screen, null); mContentView = (FrameLayout) mBrowserFrameLayout.findViewById( R.id.main_content); - mContentView.setLayoutTransition(new LayoutTransition()); mErrorConsoleContainer = (LinearLayout) mBrowserFrameLayout .findViewById(R.id.error_console); mCustomViewContainer = (FrameLayout) mBrowserFrameLayout @@ -459,6 +461,11 @@ public abstract class BaseUi implements UI, WebViewFactory { WebView web = mActiveTab.getWebView(); mActiveTab.putInBackground(); } + mComboView.setAlpha(0f); + ObjectAnimator anim = ObjectAnimator.ofFloat(mComboView, "alpha", 0f, 1f); + Resources res = mActivity.getResources(); + anim.setDuration(res.getInteger(R.integer.comboViewFadeInDuration)); + anim.start(); mContentView.addView(mComboView, COVER_SCREEN_PARAMS); } diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java index 7bb9ff0..02533b0 100644 --- a/src/com/android/browser/XLargeUi.java +++ b/src/com/android/browser/XLargeUi.java @@ -51,6 +51,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { private TitleBarXLarge mTitleBar; private Animator mTitleBarAnimator; + private boolean mSkipTitleBarAnimations; private boolean mUseQuickControls; private PieControl mPieControl; @@ -224,6 +225,8 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public void setActiveTab(final Tab tab) { + cancelTitleBarAnimation(true); + mSkipTitleBarAnimations = true; if (mUseQuickControls) { if (mActiveTab != null) { captureTab(mActiveTab); @@ -231,6 +234,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { } super.setActiveTab(tab, true); setActiveTab(tab, true); + mSkipTitleBarAnimations = false; } @Override @@ -281,8 +285,11 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public void removeTab(Tab tab) { + cancelTitleBarAnimation(true); + mSkipTitleBarAnimations = true; super.removeTab(tab); mTabBar.onRemoveTab(tab); + mSkipTitleBarAnimations = false; } protected void onRemoveTabCompleted(Tab tab) { @@ -321,18 +328,18 @@ public class XLargeUi extends BaseUi implements ScrollListener { if (mUseQuickControls) { mContentView.addView(mTitleBar); } else { - if (mTitleBarAnimator != null) { - mTitleBarAnimator.cancel(); - } - int visibleHeight = getVisibleTitleHeight(); - float startPos = (-mTitleBar.getEmbeddedHeight() + visibleHeight); - if (mTitleBar.getTranslationY() != 0) { - startPos = Math.max(startPos, mTitleBar.getTranslationY()); + if (!mSkipTitleBarAnimations) { + cancelTitleBarAnimation(false); + int visibleHeight = getVisibleTitleHeight(); + float startPos = (-mTitleBar.getEmbeddedHeight() + visibleHeight); + if (mTitleBar.getTranslationY() != 0) { + startPos = Math.max(startPos, mTitleBar.getTranslationY()); + } + mTitleBarAnimator = ObjectAnimator.ofFloat(mTitleBar, + "translationY", + startPos, 0); + mTitleBarAnimator.start(); } - mTitleBarAnimator = ObjectAnimator.ofFloat(mTitleBar, - "translationY", - startPos, 0); - mTitleBarAnimator.start(); setTitleGravity(Gravity.TOP); } super.showTitleBar(); @@ -347,20 +354,32 @@ public class XLargeUi extends BaseUi implements ScrollListener { if (mUseQuickControls) { mContentView.removeView(mTitleBar); } else { - if (mTitleBarAnimator != null) { - mTitleBarAnimator.cancel(); + if (!mSkipTitleBarAnimations) { + cancelTitleBarAnimation(false); + int visibleHeight = getVisibleTitleHeight(); + mTitleBarAnimator = ObjectAnimator.ofFloat(mTitleBar, + "translationY", mTitleBar.getTranslationY(), + (-mTitleBar.getEmbeddedHeight() + visibleHeight)); + mTitleBarAnimator.addListener(mHideTileBarAnimatorListener); + mTitleBarAnimator.start(); + } else { + setTitleGravity(Gravity.NO_GRAVITY); } - int visibleHeight = getVisibleTitleHeight(); - mTitleBarAnimator = ObjectAnimator.ofFloat(mTitleBar, - "translationY", mTitleBar.getTranslationY(), - (-mTitleBar.getEmbeddedHeight() + visibleHeight)); - mTitleBarAnimator.addListener(mHideTileBarAnimatorListener); - mTitleBarAnimator.start(); } super.hideTitleBar(); } } + private void cancelTitleBarAnimation(boolean reset) { + if (mTitleBarAnimator != null) { + mTitleBarAnimator.cancel(); + mTitleBarAnimator = null; + } + if (reset) { + mTitleBar.setTranslationY(0); + } + } + private int getVisibleTitleHeight() { WebView webview = mActiveTab != null ? mActiveTab.getWebView() : null; return webview != null ? webview.getVisibleTitleHeight() : 0; @@ -382,8 +401,8 @@ public class XLargeUi extends BaseUi implements ScrollListener { public void onAnimationEnd(Animator animation) { if (!mWasCanceled) { mTitleBar.setTranslationY(0); - setTitleGravity(Gravity.NO_GRAVITY); } + setTitleGravity(Gravity.NO_GRAVITY); } @Override |