diff options
author | Michael Jurka <mikejurka@google.com> | 2013-11-01 14:19:27 +0100 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2014-06-05 23:35:16 -0700 |
commit | 5b8ac02cb568cfa098ca0468a59e7ef3ade095fd (patch) | |
tree | ad5cb0d9205d8452f94a8aee27a212bd8aa6a3a2 | |
parent | 490cdcd3bed30d305f44d0c263902d4f2cae0550 (diff) | |
download | android_packages_apps_Trebuchet-5b8ac02cb568cfa098ca0468a59e7ef3ade095fd.tar.gz android_packages_apps_Trebuchet-5b8ac02cb568cfa098ca0468a59e7ef3ade095fd.tar.bz2 android_packages_apps_Trebuchet-5b8ac02cb568cfa098ca0468a59e7ef3ade095fd.zip |
Clear widget preview cache when system is updated
Bug: 11325218
-rw-r--r-- | src/com/android/launcher3/WidgetPreviewLoader.java | 22 |
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); |