summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2010-12-16 12:47:25 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-12-16 12:47:25 -0800
commita8ea44cd72f651463bdc90b36a11d32633dcc983 (patch)
tree15d6088d53edc72115c8aa4101565dd277442a0c /src/com
parent5a54179760ef29c1693c37b45073bcfbb65540b6 (diff)
parenta00cbbde0b77a3e1eef5691a7adb17edd5d8ab9e (diff)
downloadpackages_apps_Browser-a8ea44cd72f651463bdc90b36a11d32633dcc983.tar.gz
packages_apps_Browser-a8ea44cd72f651463bdc90b36a11d32633dcc983.tar.bz2
packages_apps_Browser-a8ea44cd72f651463bdc90b36a11d32633dcc983.zip
Merge "Fix crash trying to add data: URLs to icon db"
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/browser/Controller.java57
1 files changed, 32 insertions, 25 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 4c17308a5..487c69c41 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -57,6 +57,7 @@ import android.speech.RecognizerIntent;
import android.speech.RecognizerResultsIntent;
import android.text.TextUtils;
import android.util.Log;
+import android.util.Patterns;
import android.view.ActionMode;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
@@ -399,6 +400,7 @@ public class Controller
mDb = db;
}
+ @Override
protected Void doInBackground(Void... unused) {
mDb.open(mActivity.getDir("icons", 0).getPath());
Cursor c = null;
@@ -1891,33 +1893,38 @@ public class Controller
final String url = view.getUrl();
final String originalUrl = view.getOriginalUrl();
- new AsyncTask<Void, Void, Void>() {
- @Override
- protected Void doInBackground(Void... unused) {
- Cursor cursor = null;
- try {
- cursor = Bookmarks.queryCombinedForUrl(cr, originalUrl, url);
- if (cursor != null && cursor.moveToFirst()) {
- final ByteArrayOutputStream os =
- new ByteArrayOutputStream();
- bm.compress(Bitmap.CompressFormat.PNG, 100, os);
-
- ContentValues values = new ContentValues();
- values.put(Images.THUMBNAIL, os.toByteArray());
- values.put(Images.URL, cursor.getString(0));
-
- do {
- cr.update(Images.CONTENT_URI, values, null, null);
- } while (cursor.moveToNext());
+ // Only update thumbnails for web urls (http(s)://), not for
+ // about:, javascript:, data:, etc...
+ if (Patterns.WEB_URL.matcher(url).matches()) {
+ new AsyncTask<Void, Void, Void>() {
+ @Override
+ protected Void doInBackground(Void... unused) {
+ Cursor cursor = null;
+ try {
+ // TODO: Clean this up
+ cursor = Bookmarks.queryCombinedForUrl(cr, originalUrl, url);
+ if (cursor != null && cursor.moveToFirst()) {
+ final ByteArrayOutputStream os =
+ new ByteArrayOutputStream();
+ bm.compress(Bitmap.CompressFormat.PNG, 100, os);
+
+ ContentValues values = new ContentValues();
+ values.put(Images.THUMBNAIL, os.toByteArray());
+ values.put(Images.URL, cursor.getString(0));
+
+ do {
+ cr.update(Images.CONTENT_URI, values, null, null);
+ } while (cursor.moveToNext());
+ }
+ } catch (IllegalStateException e) {
+ // Ignore
+ } finally {
+ if (cursor != null) cursor.close();
}
- } catch (IllegalStateException e) {
- // Ignore
- } finally {
- if (cursor != null) cursor.close();
+ return null;
}
- return null;
- }
- }.execute();
+ }.execute();
+ }
}
private class Copy implements OnMenuItemClickListener {