Merge "Settings cleanup"
diff --git a/src/com/android/browser/Bookmarks.java b/src/com/android/browser/Bookmarks.java
index fef634f..9a5b6f0 100644
--- a/src/com/android/browser/Bookmarks.java
+++ b/src/com/android/browser/Bookmarks.java
@@ -29,6 +29,7 @@
import android.provider.BrowserContract;
import android.provider.BrowserContract.Combined;
import android.provider.BrowserContract.Images;
+import android.text.TextUtils;
import android.util.Log;
import android.webkit.WebIconDatabase;
import android.widget.Toast;
@@ -218,25 +219,25 @@
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... unused) {
- Cursor cursor = queryCombinedForUrl(cr, originalUrl, url);
- try {
- if (cursor.moveToFirst()) {
- final ByteArrayOutputStream os = new ByteArrayOutputStream();
- favicon.compress(Bitmap.CompressFormat.PNG, 100, os);
+ final ByteArrayOutputStream os = new ByteArrayOutputStream();
+ favicon.compress(Bitmap.CompressFormat.PNG, 100, os);
- ContentValues values = new ContentValues();
- values.put(Images.FAVICON, os.toByteArray());
- values.put(Images.URL, cursor.getString(0));
-
- do {
- cr.update(Images.CONTENT_URI, values, null, null);
- } while (cursor.moveToNext());
- }
- } finally {
- if (cursor != null) cursor.close();
- }
+ // The Images update will insert if it doesn't exist
+ ContentValues values = new ContentValues();
+ values.put(Images.FAVICON, os.toByteArray());
+ updateImages(cr, originalUrl, values);
+ updateImages(cr, url, values);
return null;
}
+
+ private void updateImages(final ContentResolver cr,
+ final String url, ContentValues values) {
+ String iurl = removeQuery(url);
+ if (!TextUtils.isEmpty(iurl)) {
+ values.put(Images.URL, iurl);
+ cr.update(BrowserContract.Images.CONTENT_URI, values, null, null);
+ }
+ }
}.execute();
}
}
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index ab6578a..b7a39a2 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1048,6 +1048,7 @@
// view is showing.
mOldMenuState = mMenuState;
mMenuState = EMPTY_MENU;
+ mActivity.invalidateOptionsMenu();
}
}
@@ -1058,6 +1059,7 @@
// Reset the old menu state.
mMenuState = mOldMenuState;
mOldMenuState = EMPTY_MENU;
+ mActivity.invalidateOptionsMenu();
}
}
@@ -1187,6 +1189,9 @@
// TODO: maybe put into separate handler
protected boolean onCreateOptionsMenu(Menu menu) {
+ if (mMenuState == EMPTY_MENU) {
+ return false;
+ }
MenuInflater inflater = mActivity.getMenuInflater();
inflater.inflate(R.menu.browser, menu);
updateInLoadMenuItems(menu);
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index dcba39b..f45b0a1 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -24,6 +24,8 @@
import android.util.Log;
import android.view.ActionMode;
import android.view.Gravity;
+import android.view.View;
+import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
@@ -349,5 +351,19 @@
mFakeTitleBar.setDisplayTitle(url);
}
+ @Override
+ public void showCustomView(View view, CustomViewCallback callback) {
+ super.showCustomView(view, callback);
+ mActivity.getActionBar().hide();
+ }
+ @Override
+ public void onHideCustomView() {
+ super.onHideCustomView();
+ if (mUseQuickControls) {
+ checkTabCount();
+ } else {
+ mActivity.getActionBar().show();
+ }
+ }
}
diff --git a/tests/src/com/android/browser/JNIBindingsTest.java b/tests/src/com/android/browser/JNIBindingsTest.java
index ba3c66a..94dc985 100644
--- a/tests/src/com/android/browser/JNIBindingsTest.java
+++ b/tests/src/com/android/browser/JNIBindingsTest.java
@@ -212,7 +212,8 @@
public boolean testJSPrimitivesToStringsInJava(String intParam, String nullParam,
String doubleParam, String booleanParam, String charParam,
String undefinedParam) {
- String expectedIntParam = "123";
+ // Since JS numbers are treated as doubles.
+ String expectedIntParam = "123.0";
String expectedDoubleParam = "456.789";
String expectedBooleanParam = "true";
String expectedCharParam = "d";