summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser')
-rw-r--r--src/com/android/browser/BaseUi.java11
-rw-r--r--src/com/android/browser/XLargeUi.java59
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