Recover when widget preview database is deleted
Bug: 12109621
Change-Id: I8d59700d31d6856d6151b965786c87585801317b
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index 84a1d04..d27cedc 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -83,7 +83,7 @@
mIsScreenLarge = isScreenLarge(sContext.getResources());
mScreenDensity = sContext.getResources().getDisplayMetrics().density;
- mWidgetPreviewCacheDb = new WidgetPreviewLoader.CacheDb(sContext);
+ recreateWidgetPreviewDb();
mIconCache = new IconCache(sContext);
mAppFilter = AppFilter.loadByName(sContext.getString(R.string.app_filter_class));
@@ -113,6 +113,13 @@
resolver.registerContentObserver(LauncherSettings.Favorites.CONTENT_URI, true,
mFavoritesObserver);
}
+
+ public void recreateWidgetPreviewDb() {
+ if (mWidgetPreviewCacheDb != null) {
+ mWidgetPreviewCacheDb.close();
+ }
+ mWidgetPreviewCacheDb = new WidgetPreviewLoader.CacheDb(sContext);
+ }
/**
* Call from Application.onTerminate(), which is not guaranteed to ever be called.