Merge "Prevent the monkies with a sledgehammer" into jb-dev
diff --git a/res/layout-sw600dp/title_bar_nav.xml b/res/layout-sw600dp/title_bar_nav.xml
index 300b740..651474a 100644
--- a/res/layout-sw600dp/title_bar_nav.xml
+++ b/res/layout-sw600dp/title_bar_nav.xml
@@ -28,7 +28,6 @@
android:src="@drawable/ic_back_holo_dark"
android:layout_width="wrap_content"
android:layout_height="match_parent"
- android:paddingLeft="16dip"
android:contentDescription="@string/accessibility_button_back"
style="@style/HoloButton" />
<ImageButton
@@ -52,22 +51,20 @@
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1.0"
- android:layout_marginLeft="8dip"
- android:layout_marginRight="8dip"
android:orientation="horizontal"
android:background="@drawable/url_background">
<ImageView
android:id="@+id/url_icon"
- android:layout_width="48dip"
+ android:layout_width="32dip"
android:layout_height="20dip"
- android:paddingLeft="14dip"
- android:paddingRight="14dip"
android:src="@drawable/ic_web_holo_dark"
android:layout_gravity="center" />
<ImageView
android:id="@+id/lock"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:layout_marginLeft="0dip"
style="@style/HoloIcon"
android:visibility="gone" />
<com.android.browser.UrlInputView
@@ -75,7 +72,7 @@
android:layout_width="0dip"
android:layout_weight="1.0"
android:layout_height="match_parent"
- android:paddingLeft="0dip"
+ android:paddingLeft="4dip"
android:paddingRight="0dip"
android:background="@null"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -115,7 +112,6 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="center"
- android:paddingRight="16dip"
style="@style/HoloButton"
android:contentDescription="@string/accessibility_button_bookmarks"
android:src="@drawable/ic_bookmarks_history_holo_dark" />
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 @@
protected TitleBar mTitleBar;
private NavigationBarBase mNavigationBar;
protected PieControl mPieControl;
+ private boolean mBlockFocusAnimations;
public BaseUi(Activity browser, UiController controller) {
mActivity = browser;
@@ -264,6 +265,8 @@
@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 @@
onProgressChanged(tab);
mNavigationBar.setIncognitoMode(tab.isPrivateBrowsingEnabled());
updateAutoLogin(tab, false);
+ mBlockFocusAnimations = false;
}
protected void updateUrlBarAutoShowManagerTarget() {
@@ -860,4 +864,10 @@
mContentView.setLayoutParams(params);
}
}
+
+ @Override
+ public boolean blockFocusAnimations() {
+ return mBlockFocusAnimations;
+ }
+
}
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index cf61c45..37b11c8 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -134,7 +134,9 @@
void setDisplayTitle(String title) {
if (!isEditingUrl()) {
- mUrlInput.setText(title, false);
+ if (!title.equals(mUrlInput.getText().toString())) {
+ mUrlInput.setText(title, false);
+ }
}
}
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 @@
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/TitleBar.java b/src/com/android/browser/TitleBar.java
index ffe5553..d3e8f7c 100644
--- a/src/com/android/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -405,8 +405,10 @@
@Override
public View focusSearch(View focused, int dir) {
- if (FOCUS_DOWN == dir && hasFocus()) {
- return getCurrentWebView();
+ WebView web = getCurrentWebView();
+ if (FOCUS_DOWN == dir && hasFocus()
+ && web.hasFocusable() && web.getParent() != null) {
+ return web;
}
return super.focusSearch(focused, dir);
}
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 boolean shouldCaptureThumbnails();
+ boolean blockFocusAnimations();
+
}