am 9d6fd296: am 70e16dbe: am 61141565: Merge "Clear widget preview cache when system is updated" into jb-ub-now-jetsonic
* commit '9d6fd296caddfb673e2aa1b524d8411d2cbdb0d2': Clear widget preview cache when system is updated
This commit is contained in:
@@ -4,6 +4,7 @@ import android.appwidget.AppWidgetProviderInfo;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
@@ -100,6 +101,7 @@ class BitmapFactoryOptionsCache extends SoftReferenceThreadLocal<BitmapFactory.O
|
|||||||
|
|
||||||
public class WidgetPreviewLoader {
|
public class WidgetPreviewLoader {
|
||||||
static final String TAG = "WidgetPreviewLoader";
|
static final String TAG = "WidgetPreviewLoader";
|
||||||
|
static final String ANDROID_INCREMENTAL_VERSION_NAME_KEY = "android.incremental.version";
|
||||||
|
|
||||||
private int mPreviewBitmapWidth;
|
private int mPreviewBitmapWidth;
|
||||||
private int mPreviewBitmapHeight;
|
private int mPreviewBitmapHeight;
|
||||||
@@ -147,6 +149,20 @@ public class WidgetPreviewLoader {
|
|||||||
mDb = app.getWidgetPreviewCacheDb();
|
mDb = app.getWidgetPreviewCacheDb();
|
||||||
mLoadedPreviews = new HashMap<String, WeakReference<Bitmap>>();
|
mLoadedPreviews = new HashMap<String, WeakReference<Bitmap>>();
|
||||||
mUnusedBitmaps = new ArrayList<SoftReference<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,
|
public void setPreviewSize(int previewWidth, int previewHeight,
|
||||||
@@ -334,6 +350,12 @@ public class WidgetPreviewLoader {
|
|||||||
db.insert(CacheDb.TABLE_NAME, null, values);
|
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) {
|
public static void removePackageFromDb(final CacheDb cacheDb, final String packageName) {
|
||||||
synchronized(sInvalidPackages) {
|
synchronized(sInvalidPackages) {
|
||||||
sInvalidPackages.add(packageName);
|
sInvalidPackages.add(packageName);
|
||||||
|
|||||||
Reference in New Issue
Block a user