Merge "Fix voice search mode"
diff --git a/res/layout/browser_add_bookmark.xml b/res/layout/browser_add_bookmark.xml
index b66a37e..3720790 100644
--- a/res/layout/browser_add_bookmark.xml
+++ b/res/layout/browser_add_bookmark.xml
@@ -19,7 +19,6 @@
android:layout_height="match_parent"
android:orientation="vertical"
>
-
<include layout="@layout/browser_add_bookmark_content" />
</LinearLayout>
diff --git a/res/layout/browser_add_bookmark_content.xml b/res/layout/browser_add_bookmark_content.xml
index 59d9329..8b28011 100644
--- a/res/layout/browser_add_bookmark_content.xml
+++ b/res/layout/browser_add_bookmark_content.xml
@@ -42,6 +42,10 @@
android:text="@string/new_folder"
android:visibility="gone"
android:layout_centerVertical="true"
+ android:layout_alignTop="@+id/crumbs"
+ android:layout_alignBottom="@+id/crumbs"
+ android:focusable="true"
+ android:background="?android:attr/selectableItemBackground"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView android:id="@+id/add_divider"
android:layout_width="wrap_content"
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 745a0f4..b2738e1 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1467,6 +1467,11 @@
final MenuItem newtab = menu.findItem(R.id.new_tab_menu_id);
newtab.setEnabled(getTabControl().canCreateNewTab());
+ MenuItem archive = menu.findItem(R.id.save_webarchive_menu_id);
+ String url = getCurrentTopWebView().getUrl();
+ archive.setVisible(!TextUtils.isEmpty(url)
+ && !url.endsWith("webarchivexml"));
+
break;
}
mCurrentMenuState = mMenuState;
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 73c1b99..cfe7351 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -17,12 +17,16 @@
package com.android.browser;
import android.app.Activity;
+import android.content.Context;
+import android.graphics.PixelFormat;
import android.util.Log;
import android.view.ActionMode;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
+import android.view.MotionEvent;
import android.view.View;
+import android.view.WindowManager;
import android.webkit.WebView;
/**
@@ -34,6 +38,7 @@
private TitleBar mTitleBar;
private ActiveTabsPage mActiveTabsPage;
+ private TouchProxy mTitleOverlay;
boolean mExtendedMenuOpen;
boolean mOptionsMenuOpen;
@@ -140,7 +145,7 @@
}
@Override
- void showTitleBar() {
+ protected void showTitleBar() {
if (canShowTitleBar()) {
setTitleGravity(Gravity.TOP);
super.showTitleBar();
@@ -191,8 +196,14 @@
@Override
public void onOptionsMenuOpened() {
mOptionsMenuOpen = true;
- // options menu opened, show fake title bar
+ // options menu opened, show title bar
showTitleBar();
+ if (mTitleOverlay == null) {
+ // This assumes that getTitleBar always returns the same View
+ mTitleOverlay = new TouchProxy(mActivity, getTitleBar());
+ }
+ mActivity.getWindowManager().addView(mTitleOverlay,
+ mTitleOverlay.getWindowLayoutParams());
}
@Override
@@ -206,7 +217,8 @@
@Override
public void onOptionsMenuClosed(boolean inLoad) {
mOptionsMenuOpen = false;
- if (!inLoad) {
+ mActivity.getWindowManager().removeView(mTitleOverlay);
+ if (!inLoad && !getTitleBar().hasFocus()) {
hideTitleBar();
}
}
@@ -241,4 +253,32 @@
return false;
}
+ static class TouchProxy extends View {
+
+ View mTarget;
+
+ TouchProxy(Context context, View target) {
+ super(context);
+ mTarget = target;
+ }
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ return mTarget.dispatchTouchEvent(event);
+ }
+
+ WindowManager.LayoutParams getWindowLayoutParams() {
+ WindowManager.LayoutParams params =
+ new WindowManager.LayoutParams(
+ mTarget.getWidth(),
+ mTarget.getHeight(),
+ WindowManager.LayoutParams.TYPE_APPLICATION,
+ WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
+ PixelFormat.TRANSPARENT);
+ params.gravity = Gravity.TOP | Gravity.LEFT;
+ params.y = mTarget.getTop();
+ params.x = mTarget.getLeft();
+ return params;
+ }
+ }
}