Remove second url bar
Remove the overlay "fake" titlebar by telling the
WebView where to render the embedded titlebar
Simplify focus handling
requires Ic979b641c8cc80acb83eeab49c4f700fc5c50e72
in frameworks/base
Change-Id: I7896cd731949fdcc47cd18abfee5ef947b0e8cee
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 562705b..3e200ea 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -28,8 +28,6 @@
import android.view.View;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebView;
-import android.widget.FrameLayout;
-import android.widget.FrameLayout.LayoutParams;
import java.util.List;
@@ -44,7 +42,6 @@
private TabBar mTabBar;
private TitleBarXLarge mTitleBar;
- private TitleBarXLarge mFakeTitleBar;
private boolean mUseQuickControls;
private PieControl mPieControl;
@@ -57,9 +54,6 @@
super(browser, controller);
mTitleBar = new TitleBarXLarge(mActivity, mUiController, this);
mTitleBar.setProgress(100);
- mTitleBar.setEditable(false);
- mFakeTitleBar = new TitleBarXLarge(mActivity, mUiController, this);
- mFakeTitleBar.setEditable(true);
mTabBar = new TabBar(mActivity, mUiController, this);
mActionBar = mActivity.getActionBar();
setupActionBar();
@@ -90,31 +84,28 @@
private void setUseQuickControls(boolean useQuickControls) {
mUseQuickControls = useQuickControls;
+ mTitleBar.setUseQuickControls(mUseQuickControls);
if (useQuickControls) {
checkTabCount();
mPieControl = new PieControl(mActivity, mUiController, this);
mPieControl.attachToContainer(mContentView);
- setFakeTitleBarGravity(Gravity.BOTTOM);
-
- // remove embedded title bar if present
- WebView web = mTabControl.getCurrentWebView();
- if ((web != null) && (web.getVisibleTitleHeight() > 0)) {
- web.setEmbeddedTitleBar(null);
+ Tab tab = getActiveTab();
+ if ((tab != null) && (tab.getWebView() != null)) {
+ tab.getWebView().setEmbeddedTitleBar(null);
}
+ setTitleGravity(Gravity.BOTTOM);
} else {
mActivity.getActionBar().show();
if (mPieControl != null) {
mPieControl.removeFromContainer(mContentView);
}
- setFakeTitleBarGravity(Gravity.TOP);
- // remove embedded title bar if present
+ setTitleGravity(Gravity.TOP);
WebView web = mTabControl.getCurrentWebView();
- if ((web != null) && (web.getVisibleTitleHeight() == 0)) {
+ if (web != null) {
web.setEmbeddedTitleBar(mTitleBar);
}
}
mTabBar.setUseQuickControls(mUseQuickControls);
- mFakeTitleBar.setUseQuickControls(mUseQuickControls);
}
private void checkTabCount() {
@@ -130,7 +121,7 @@
@Override
public void onDestroy() {
- hideFakeTitleBar();
+ hideTitleBar();
}
// webview factory
@@ -174,7 +165,6 @@
if (tab.inForeground()) {
boolean isBookmark = tab.isBookmarkedSite();
mTitleBar.setCurrentUrlIsBookmark(isBookmark);
- mFakeTitleBar.setCurrentUrlIsBookmark(isBookmark);
}
}
@@ -183,23 +173,23 @@
int progress = tab.getLoadProgress();
mTabBar.onProgress(tab, progress);
if (tab.inForeground()) {
- mFakeTitleBar.setProgress(progress);
+ mTitleBar.setProgress(progress);
if (progress == 100) {
- if (!mFakeTitleBar.isEditingUrl()) {
- hideFakeTitleBar();
+ if (!mTitleBar.isEditingUrl()) {
+ hideTitleBar();
if (mUseQuickControls) {
- mFakeTitleBar.setShowProgressOnly(false);
- setFakeTitleBarGravity(Gravity.BOTTOM);
+ mTitleBar.setShowProgressOnly(false);
+ setTitleGravity(Gravity.BOTTOM);
}
}
} else {
- if (mUseQuickControls && !mFakeTitleBar.isEditingUrl()) {
- mFakeTitleBar.setShowProgressOnly(true);
- if (!isFakeTitleBarShowing()) {
- setFakeTitleBarGravity(Gravity.TOP);
+ if (!isTitleBarShowing()) {
+ if (mUseQuickControls && !mTitleBar.isEditingUrl()) {
+ mTitleBar.setShowProgressOnly(true);
+ setTitleGravity(Gravity.TOP);
}
+ showTitleBar();
}
- showFakeTitleBar();
}
}
}
@@ -274,55 +264,48 @@
if (mUiController.isInCustomActionMode()) {
mUiController.endActionMode();
}
- showFakeTitleBar();
- mFakeTitleBar.onEditUrl(clearInput);
+ showTitleBar();
+ mTitleBar.onEditUrl(clearInput);
}
- void setFakeTitleBarGravity(int gravity) {
- FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams)
- mFakeTitleBar.getLayoutParams();
- if (lp == null) {
- lp = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
- LayoutParams.WRAP_CONTENT);
+ void showTitleBarAndEdit() {
+ mTitleBar.setShowProgressOnly(false);
+ showTitleBar();
+ mTitleBar.onEditUrl(false);
+ }
+
+ void stopEditingUrl() {
+ mTitleBar.stopEditingUrl();
+ }
+
+ @Override
+ protected void showTitleBar() {
+ if (canShowTitleBar()) {
+ if (mUseQuickControls) {
+ setTitleGravity(Gravity.BOTTOM);
+ mContentView.addView(mTitleBar);
+ } else {
+ setTitleGravity(Gravity.TOP);
+ }
+ super.showTitleBar();
+ mTabBar.onShowTitleBar();
}
- lp.gravity = gravity;
- mFakeTitleBar.setLayoutParams(lp);
- }
-
- void showFakeTitleBarAndEdit() {
- mFakeTitleBar.setShowProgressOnly(false);
- setFakeTitleBarGravity(Gravity.BOTTOM);
- showFakeTitleBar();
- mFakeTitleBar.onEditUrl(false);
}
@Override
- protected void attachFakeTitleBar(WebView mainView) {
- mContentView.addView(mFakeTitleBar);
- mTabBar.onShowTitleBar();
- }
-
- @Override
- protected void hideFakeTitleBar() {
- if (isFakeTitleBarShowing()) {
- mFakeTitleBar.setEditMode(false);
+ protected void hideTitleBar() {
+ if (isTitleBarShowing()) {
mTabBar.onHideTitleBar();
- mContentView.removeView(mFakeTitleBar);
+ setTitleGravity(Gravity.NO_GRAVITY);
+ if (mUseQuickControls) {
+ mContentView.removeView(mTitleBar);
+ }
+ super.hideTitleBar();
}
}
@Override
- protected boolean isFakeTitleBarShowing() {
- return (mFakeTitleBar.getParent() != null);
- }
-
- @Override
- protected TitleBarBase getFakeTitleBar() {
- return mFakeTitleBar;
- }
-
- @Override
- protected TitleBarBase getEmbeddedTitleBar() {
+ protected TitleBarBase getTitleBar() {
return mTitleBar;
}
@@ -330,9 +313,9 @@
@Override
public void onActionModeStarted(ActionMode mode) {
- if (!mFakeTitleBar.isEditingUrl()) {
+ if (!mTitleBar.isEditingUrl()) {
// hide the fake title bar when CAB is shown
- hideFakeTitleBar();
+ hideTitleBar();
}
}
@@ -342,18 +325,17 @@
if (inLoad) {
// the titlebar was removed when the CAB was shown
// if the page is loading, show it again
- mFakeTitleBar.setShowProgressOnly(true);
- if (!isFakeTitleBarShowing()) {
- setFakeTitleBarGravity(Gravity.TOP);
+ mTitleBar.setShowProgressOnly(true);
+ if (!isTitleBarShowing()) {
+ setTitleGravity(Gravity.TOP);
}
- showFakeTitleBar();
+ showTitleBar();
}
}
@Override
protected void updateNavigationState(Tab tab) {
mTitleBar.updateNavigationState(tab);
- mFakeTitleBar.updateNavigationState(tab);
}
@Override
@@ -377,8 +359,6 @@
}
mTitleBar.setInVoiceMode(true, null);
mTitleBar.setDisplayTitle(title);
- mFakeTitleBar.setInVoiceMode(true, vsresults);
- mFakeTitleBar.setDisplayTitle(title);
}
@Override
@@ -386,8 +366,6 @@
mTitleBar.setInVoiceMode(false, null);
String url = tab.getUrl();
mTitleBar.setDisplayTitle(url);
- mFakeTitleBar.setInVoiceMode(false, null);
- mFakeTitleBar.setDisplayTitle(url);
}
@Override
@@ -419,7 +397,7 @@
}
}
boolean ctrl = event.hasModifiers(KeyEvent.META_CTRL_ON);
- if (!ctrl && event.isPrintingKey() && !mFakeTitleBar.isEditingUrl()) {
+ if (!ctrl && event.isPrintingKey() && !mTitleBar.isEditingUrl()) {
editUrl(true);
return mContentView.dispatchKeyEvent(event);
}