Titlebar Autoshow tweaks
Also consolidate some common code between phone and tablet
Change-Id: I2e1be9be84b07726596d4b4fe7345c0074236be1
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index f7d7a3c..ad45958 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -857,13 +857,14 @@
@Override
public void onScroll(int visibleTitleHeight, boolean userInitiated) {
WebView view = mActiveTab != null ? mActiveTab.getWebView() : null;
- if (view == null || !userInitiated) {
+ if (view == null) {
return;
}
int scrollY = view.getScrollY();
- if (scrollY < (mLastScrollY - mTitlebarScrollTriggerSlop)) {
+ if (isTitleBarShowing()
+ || scrollY < (mLastScrollY - mTitlebarScrollTriggerSlop)) {
mLastScrollY = scrollY;
- if (visibleTitleHeight == 0) {
+ if (visibleTitleHeight == 0 && userInitiated) {
mHandler.removeMessages(MSG_HIDE_TITLEBAR);
showTitleBar();
Message msg = Message.obtain(mHandler, MSG_HIDE_TITLEBAR);
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index 1ea6071..8584afa 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -276,12 +276,9 @@
public void onScroll(int visibleTitleHeight, boolean userInitiated) {
if (mUseQuickControls) return;
// isLoading is using the current tab, which initially might not be set yet
- if (mTabControl.getCurrentTab() != null
- && !isLoading()) {
- if (visibleTitleHeight == 0) {
- if (!showsTitleBarIndicator()
- && (!mUi.isEditingUrl() || userInitiated)) {
- mUi.hideTitleBar();
+ if (mTabControl.getCurrentTab() != null) {
+ if (visibleTitleHeight == 0 && !mUi.isTitleBarShowing()) {
+ if (!showsTitleBarIndicator()) {
showTitleBarIndicator(true);
}
} else {
diff --git a/src/com/android/browser/TitleBarBase.java b/src/com/android/browser/TitleBarBase.java
index e2c3432..cf3a6ef 100644
--- a/src/com/android/browser/TitleBarBase.java
+++ b/src/com/android/browser/TitleBarBase.java
@@ -209,7 +209,6 @@
@Override
public void onAnimationStart(Animator animation) {
mWasCanceled = false;
- mUrlInput.setEnabled(false);
}
@Override
@@ -222,7 +221,6 @@
setTranslationY(0);
}
mBaseUi.setTitleGravity(Gravity.NO_GRAVITY);
- mUrlInput.setEnabled(true);
}
@Override
@@ -462,6 +460,7 @@
setFocusState(hasFocus);
}
if (hasFocus) {
+ mBaseUi.showTitleBar();
mUrlInput.forceIme();
if (mInVoiceMode) {
mUrlInput.forceFilter();
@@ -475,6 +474,7 @@
mUrlInput.setText(currentTab.getUrl(), false);
}
}
+ mBaseUi.suggestHideTitleBar();
}
mUrlInput.clearNeedsUpdate();
}
diff --git a/src/com/android/browser/TitleBarPhone.java b/src/com/android/browser/TitleBarPhone.java
index de5fb7f..1fcaf4d 100644
--- a/src/com/android/browser/TitleBarPhone.java
+++ b/src/com/android/browser/TitleBarPhone.java
@@ -147,9 +147,6 @@
}
}
super.onFocusChange(v, hasFocus);
- if (!hasFocus) {
- mBaseUi.hideTitleBar();
- }
}
@Override
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index 69f6949..3d4d2ec 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -123,36 +123,6 @@
}
@Override
- public void onFocusChange(View view, boolean hasFocus) {
- // if losing focus and not in touch mode, leave as is
- if (hasFocus || view.isInTouchMode() || mUrlInput.needsUpdate()) {
- setFocusState(hasFocus);
- mUrlContainer.setBackgroundDrawable(hasFocus
- ? mFocusDrawable : mUnfocusDrawable);
- }
- if (hasFocus) {
- mUrlInput.forceIme();
- if (mInVoiceMode) {
- mUrlInput.forceFilter();
- }
- } else if (!mUrlInput.needsUpdate()) {
- mUrlInput.dismissDropDown();
- mUrlInput.hideIME();
- if (mUseQuickControls) {
- mUi.hideTitleBar();
- }
-
- if (mUrlInput.getText().length() == 0) {
- Tab currentTab = mUiController.getTabControl().getCurrentTab();
- if (currentTab != null) {
- mUrlInput.setText(currentTab.getUrl(), false);
- }
- }
- }
- mUrlInput.clearNeedsUpdate();
- }
-
- @Override
public void setCurrentUrlIsBookmark(boolean isBookmark) {
mStar.setActivated(isBookmark);
}
@@ -226,6 +196,8 @@
}
updateUrlIcon();
}
+ mUrlContainer.setBackgroundDrawable(focus
+ ? mFocusDrawable : mUnfocusDrawable);
}
private void stopOrRefresh() {