diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index eead0855e3..1598e2b479 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -2477,7 +2477,7 @@ public class LauncherModel extends BroadcastReceiver { for (int i=0; i() { + public Void doInBackground(Void ... args) { + SQLiteDatabase db = cacheDb.getWritableDatabase(); + db.delete(CacheDb.TABLE_NAME, + CacheDb.COLUMN_NAME + " = ? ", // SELECT query + new String[] { objectName }); // args to SELECT query + return null; + } + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void) null); + } + private Bitmap readFromDb(String name, Bitmap b) { if (mCachedSelectQuery == null) { mCachedSelectQuery = CacheDb.COLUMN_NAME + " = ? AND " + @@ -377,8 +390,12 @@ public class WidgetPreviewLoader { final BitmapFactory.Options opts = mCachedBitmapFactoryOptions.get(); opts.inBitmap = b; opts.inSampleSize = 1; - Bitmap out = BitmapFactory.decodeByteArray(blob, 0, blob.length, opts); - return out; + try { + return BitmapFactory.decodeByteArray(blob, 0, blob.length, opts); + } catch (IllegalArgumentException e) { + removeItemFromDb(mDb, name); + return null; + } } else { result.close(); return null;