Merge "Private browsing cleanup is now done in webkit"
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 4fca79d..70813e5 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -132,9 +132,9 @@
frameLayout.addView(mBrowserFrameLayout, COVER_SCREEN_PARAMS);
if (mXLargeScreenSize) {
- mTitleBar = new TitleBarXLarge(mActivity, mUiController);
+ mTitleBar = new TitleBarXLarge(mActivity, mUiController, this);
mTitleBar.setProgress(100);
- mFakeTitleBar = new TitleBarXLarge(mActivity, mUiController);
+ mFakeTitleBar = new TitleBarXLarge(mActivity, mUiController, this);
ActionBar actionBar = mActivity.getActionBar();
mTabBar = new TabBar(mActivity, mUiController, this);
actionBar.setCustomNavigationMode(mTabBar);
@@ -515,6 +515,11 @@
return 0;
}
+ void editUrl(boolean clearInput) {
+ showFakeTitleBar();
+ ((TitleBarXLarge) mFakeTitleBar).onEditUrl(clearInput);
+ }
+
void showFakeTitleBar() {
if (!isFakeTitleBarShowing() && mActiveTabsPage == null &&
!mActivityPaused) {
@@ -781,8 +786,11 @@
@Override
public void onActionModeStarted(ActionMode mode) {
- // hide the fake title bar when CAB is shown
- hideFakeTitleBar();
+ if (!mXLargeScreenSize
+ || !((TitleBarXLarge) mFakeTitleBar).isEditingUrl()) {
+ // hide the fake title bar when CAB is shown
+ hideFakeTitleBar();
+ }
}
@Override
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index 99e86c4..b7497ec 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -46,6 +46,7 @@
private static final int PROGRESS_MAX = 100;
private UiController mUiController;
+ private BaseUi mUi;
private Drawable mStopDrawable;
private Drawable mReloadDrawable;
@@ -63,11 +64,14 @@
private View mVoiceSearch;
private PageProgressView mProgressView;
private UrlInputView mUrlInput;
+
private boolean mInLoad;
- public TitleBarXLarge(Activity activity, UiController controller) {
+ public TitleBarXLarge(Activity activity, UiController controller,
+ BaseUi ui) {
super(activity);
mUiController = controller;
+ mUi = ui;
Resources resources = activity.getResources();
mStopDrawable = resources.getDrawable(R.drawable.ic_stop_normal);
mReloadDrawable = resources.getDrawable(R.drawable.ic_refresh_normal);
@@ -94,6 +98,7 @@
mVoiceSearch = findViewById(R.id.voicesearch);
mProgressView = (PageProgressView) findViewById(R.id.progress);
mUrlContainer = findViewById(R.id.urlbar_focused);
+
mBackButton.setOnClickListener(this);
mForwardButton.setOnClickListener(this);
mStar.setOnClickListener(this);
@@ -121,9 +126,30 @@
mStar.setActivated(isBookmark);
}
+ /**
+ * called from the Ui when the user wants to edit
+ * Note: only the fake titlebar will get this callback
+ * independent of which input field started the edit mode
+ * @param clearInput clear the input field
+ */
+ void onEditUrl(boolean clearInput) {
+ mUrlInput.requestFocusFromTouch();
+ if (clearInput) {
+ mUrlInput.setText("");
+ }
+ }
+
+ boolean isEditingUrl() {
+ return mUrlInput.hasFocus();
+ }
+
@Override
public void onClick(View v) {
- if (mBackButton == v) {
+ if (mUrlInput == v) {
+ if (!mUrlInput.hasFocus()) {
+ mUi.editUrl(false);
+ }
+ } else if (mBackButton == v) {
mUiController.getCurrentTopWebView().goBack();
} else if (mForwardButton == v) {
mUiController.getCurrentTopWebView().goForward();
@@ -133,7 +159,7 @@
} else if (mAllButton == v) {
mUiController.bookmarksOrHistoryPicker(false);
} else if (mSearchButton == v) {
- search();
+ mUi.editUrl(true);
} else if (mStopButton == v) {
stopOrRefresh();
} else if (mGoButton == v) {
@@ -165,6 +191,10 @@
// UrlInputListener implementation
+ /**
+ * callback from suggestion dropdown
+ * user selected a suggestion
+ */
@Override
public void onAction(String text, String extra, String source) {
mUiController.getCurrentTopWebView().requestFocus();
@@ -199,6 +229,10 @@
}
}
+ /**
+ * callback from the suggestion dropdown
+ * copy text to input field and stay in edit mode
+ */
@Override
public void onEdit(String text) {
setDisplayTitle(text, true);
@@ -207,7 +241,7 @@
}
}
- private void setUrlMode(boolean focused) {
+ void setUrlMode(boolean focused) {
if (focused) {
mUrlInput.setDropDownWidth(mUrlContainer.getWidth());
mUrlInput.setDropDownHorizontalOffset(-mUrlInput.getLeft());
@@ -225,12 +259,6 @@
}
}
- private void search() {
- mUrlInput.requestFocus();
- setDisplayTitle("");
- setUrlMode(true);
- }
-
private void stopOrRefresh() {
if (mInLoad) {
mUiController.stopLoading();
@@ -285,7 +313,7 @@
@Override
public void afterTextChanged(Editable s) {
if (mUrlInput.hasFocus()) {
- // check if url input is empty and adjust voice search state
+ // check if input field is empty and adjust voice search state
updateSearchMode();
}
}