summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherProvider.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2014-10-23 14:21:02 -0700
committerSunny Goyal <sunnygoyal@google.com>2014-10-27 16:28:44 -0700
commit9d219685c5f008ddfb0f72ef01831308d8a81c2e (patch)
tree83775970e5761cab90ca4b3c27de1665fc9adce4 /src/com/android/launcher3/LauncherProvider.java
parente790dfdc4f46983b8416ef39b6112e91c10f9b51 (diff)
downloadandroid_packages_apps_Trebuchet-9d219685c5f008ddfb0f72ef01831308d8a81c2e.tar.gz
android_packages_apps_Trebuchet-9d219685c5f008ddfb0f72ef01831308d8a81c2e.tar.bz2
android_packages_apps_Trebuchet-9d219685c5f008ddfb0f72ef01831308d8a81c2e.zip
Loading internal default layout if partner layout fails to load
Bug: 18033885 Change-Id: I8399d0107cc3570c0e03d833601abf2cd194b3d3
Diffstat (limited to 'src/com/android/launcher3/LauncherProvider.java')
-rw-r--r--src/com/android/launcher3/LauncherProvider.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index f2d005e65..fe9bc171f 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -322,29 +322,34 @@ public class LauncherProvider extends ContentProvider {
}
}
+ final boolean usingExternallyProvidedLayout = loader != null;
if (loader == null) {
- loader = new DefaultLayoutParser(getContext(), mOpenHelper.mAppWidgetHost,
- mOpenHelper, getContext().getResources(), getDefaultWorkspaceResourceId());
+ loader = getDefaultLayoutParser();
}
-
// Populate favorites table with initial favorites
- SharedPreferences.Editor editor = sp.edit().remove(EMPTY_DATABASE_CREATED);
- mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), loader);
- editor.commit();
+ if ((mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), loader) <= 0)
+ && usingExternallyProvidedLayout) {
+ // Unable to load external layout. Cleanup and load the internal layout.
+ createEmptyDB();
+ mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(),
+ getDefaultLayoutParser());
+ }
+ sp.edit().remove(EMPTY_DATABASE_CREATED).commit();
}
}
+ private DefaultLayoutParser getDefaultLayoutParser() {
+ int defaultLayout = LauncherAppState.getInstance()
+ .getDynamicGrid().getDeviceProfile().defaultLayoutId;
+ return new DefaultLayoutParser(getContext(), mOpenHelper.mAppWidgetHost,
+ mOpenHelper, getContext().getResources(), defaultLayout);
+ }
+
public void migrateLauncher2Shortcuts() {
mOpenHelper.migrateLauncher2Shortcuts(mOpenHelper.getWritableDatabase(),
Uri.parse(getContext().getString(R.string.old_launcher_provider_uri)));
}
- private static int getDefaultWorkspaceResourceId() {
- LauncherAppState app = LauncherAppState.getInstance();
- DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
- return grid.defaultLayoutId;
- }
-
private static interface ContentValuesCallback {
public void onRow(ContentValues values);
}