summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/WidgetPreviewLoader.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-11-01 14:19:27 +0100
committerMichael Jurka <mikejurka@google.com>2013-11-01 14:20:57 +0100
commit8ff02cac07a9c7fb0f321e93d67ad75cc588fbae (patch)
tree6b897b68bf1a678d9fb5a8054729d26987a574cb /src/com/android/launcher3/WidgetPreviewLoader.java
parentd77057a77b8a1887f873fbb4fafbd4dd65a98e53 (diff)
downloadandroid_packages_apps_Trebuchet-8ff02cac07a9c7fb0f321e93d67ad75cc588fbae.tar.gz
android_packages_apps_Trebuchet-8ff02cac07a9c7fb0f321e93d67ad75cc588fbae.tar.bz2
android_packages_apps_Trebuchet-8ff02cac07a9c7fb0f321e93d67ad75cc588fbae.zip
Clear widget preview cache when system is updated
Bug: 11325218
Diffstat (limited to 'src/com/android/launcher3/WidgetPreviewLoader.java')
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index 07b4f6f0a..7e1ad6d76 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -4,6 +4,7 @@ import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.ContentValues;
import android.content.Context;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
@@ -100,6 +101,7 @@ class BitmapFactoryOptionsCache extends SoftReferenceThreadLocal<BitmapFactory.O
public class WidgetPreviewLoader {
static final String TAG = "WidgetPreviewLoader";
+ static final String ANDROID_INCREMENTAL_VERSION_NAME_KEY = "android.incremental.version";
private int mPreviewBitmapWidth;
private int mPreviewBitmapHeight;
@@ -147,6 +149,20 @@ public class WidgetPreviewLoader {
mDb = app.getWidgetPreviewCacheDb();
mLoadedPreviews = new HashMap<String, WeakReference<Bitmap>>();
mUnusedBitmaps = new ArrayList<SoftReference<Bitmap>>();
+
+ SharedPreferences sp = context.getSharedPreferences(
+ LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE);
+ final String lastVersionName = sp.getString(ANDROID_INCREMENTAL_VERSION_NAME_KEY, null);
+ final String versionName = android.os.Build.VERSION.INCREMENTAL;
+ if (!versionName.equals(lastVersionName)) {
+ // clear all the previews whenever the system version changes, to ensure that previews
+ // are up-to-date for any apps that might have been updated with the system
+ clearDb();
+
+ SharedPreferences.Editor editor = sp.edit();
+ editor.putString(ANDROID_INCREMENTAL_VERSION_NAME_KEY, versionName);
+ editor.commit();
+ }
}
public void setPreviewSize(int previewWidth, int previewHeight,
@@ -334,6 +350,12 @@ public class WidgetPreviewLoader {
db.insert(CacheDb.TABLE_NAME, null, values);
}
+ private void clearDb() {
+ SQLiteDatabase db = mDb.getWritableDatabase();
+ // Delete everything
+ db.delete(CacheDb.TABLE_NAME, null, null);
+ }
+
public static void removePackageFromDb(final CacheDb cacheDb, final String packageName) {
synchronized(sInvalidPackages) {
sInvalidPackages.add(packageName);