diff options
author | Michael Kolb <kolby@google.com> | 2012-05-30 09:42:44 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-30 09:42:44 -0700 |
commit | 06b7e0fafdee08f7045f419b19eb1aacb00d7d60 (patch) | |
tree | 85520465e9a403fead3cc7f51816141ce475169b /src/com | |
parent | 4159756953c0ada88f774828d6a1f329564d222b (diff) | |
parent | bae0cb200f6ad93ce61c5781100f4b6ac0cb6649 (diff) | |
download | packages_apps_browser-06b7e0fafdee08f7045f419b19eb1aacb00d7d60.zip packages_apps_browser-06b7e0fafdee08f7045f419b19eb1aacb00d7d60.tar.gz packages_apps_browser-06b7e0fafdee08f7045f419b19eb1aacb00d7d60.tar.bz2 |
Merge "tighten nav bar layout & fix animation bug" into jb-dev
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/browser/BaseUi.java | 10 | ||||
-rw-r--r-- | src/com/android/browser/NavigationBarTablet.java | 41 | ||||
-rw-r--r-- | src/com/android/browser/UI.java | 2 |
3 files changed, 40 insertions, 13 deletions
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index e3f5986..cfe9a53 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -113,6 +113,7 @@ public abstract class BaseUi implements UI { protected TitleBar mTitleBar; private NavigationBarBase mNavigationBar; protected PieControl mPieControl; + private boolean mBlockFocusAnimations; public BaseUi(Activity browser, UiController controller) { mActivity = browser; @@ -264,6 +265,8 @@ public abstract class BaseUi implements UI { @Override public void setActiveTab(final Tab tab) { if (tab == null) return; + // block unnecessary focus change animations during tab switch + mBlockFocusAnimations = true; mHandler.removeMessages(MSG_HIDE_TITLEBAR); if ((tab != mActiveTab) && (mActiveTab != null)) { removeTabFromContentView(mActiveTab); @@ -294,6 +297,7 @@ public abstract class BaseUi implements UI { onProgressChanged(tab); mNavigationBar.setIncognitoMode(tab.isPrivateBrowsingEnabled()); updateAutoLogin(tab, false); + mBlockFocusAnimations = false; } protected void updateUrlBarAutoShowManagerTarget() { @@ -860,4 +864,10 @@ public abstract class BaseUi implements UI { mContentView.setLayoutParams(params); } } + + @Override + public boolean blockFocusAnimations() { + return mBlockFocusAnimations; + } + } diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java index b9c86e3..426174b 100644 --- a/src/com/android/browser/NavigationBarTablet.java +++ b/src/com/android/browser/NavigationBarTablet.java @@ -259,34 +259,49 @@ public class NavigationBarTablet extends NavigationBarBase { mStopButton.setContentDescription(mRefreshDescription); } + private AnimatorSet mAnimation; + private void hideNavButtons() { + if (mBaseUi.blockFocusAnimations()) { + mNavButtons.setVisibility(View.GONE); + return; + } int awidth = mNavButtons.getMeasuredWidth(); Animator anim1 = ObjectAnimator.ofFloat(mNavButtons, View.TRANSLATION_X, 0, - awidth); Animator anim2 = ObjectAnimator.ofInt(mUrlContainer, "left", mUrlContainer.getLeft(), mUrlContainer.getPaddingLeft()); Animator anim3 = ObjectAnimator.ofFloat(mNavButtons, View.ALPHA, 1f, 0f); - AnimatorSet combo = new AnimatorSet(); - combo.playTogether(anim1, anim2, anim3); - combo.addListener(new AnimatorListenerAdapter() { + mAnimation = new AnimatorSet(); + mAnimation.playTogether(anim1, anim2, anim3); + mAnimation.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mNavButtons.setVisibility(View.GONE); + mAnimation = null; } }); - combo.setDuration(150); - combo.start(); + mAnimation.setDuration(150); + mAnimation.start(); } private void showNavButtons() { - int awidth = mNavButtons.getMeasuredWidth(); - Animator anim1 = ObjectAnimator.ofFloat(mNavButtons, View.TRANSLATION_X, -awidth, 0); - Animator anim2 = ObjectAnimator.ofInt(mUrlContainer, "left", 0, awidth); - Animator anim3 = ObjectAnimator.ofFloat(mNavButtons, View.ALPHA, 0f, 1f); - AnimatorSet combo = new AnimatorSet(); - combo.playTogether(anim1, anim2, anim3); + if (mAnimation != null) { + mAnimation.cancel(); + } mNavButtons.setVisibility(View.VISIBLE); - combo.setDuration(150); - combo.start(); + if (!mBaseUi.blockFocusAnimations()) { + int awidth = mNavButtons.getMeasuredWidth(); + Animator anim1 = ObjectAnimator.ofFloat(mNavButtons, + View.TRANSLATION_X, -awidth, 0); + Animator anim2 = ObjectAnimator.ofInt(mUrlContainer, "left", 0, + awidth); + Animator anim3 = ObjectAnimator.ofFloat(mNavButtons, View.ALPHA, + 0f, 1f); + AnimatorSet combo = new AnimatorSet(); + combo.playTogether(anim1, anim2, anim3); + combo.setDuration(150); + combo.start(); + } } private void showHideStar(Tab tab) { diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java index aeab746..96f6640 100644 --- a/src/com/android/browser/UI.java +++ b/src/com/android/browser/UI.java @@ -146,4 +146,6 @@ public interface UI { public boolean shouldCaptureThumbnails(); + boolean blockFocusAnimations(); + } |