From 28d42e88a7d6abdeb6f8da0fe291cd7fb7bc5679 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 18 Nov 2014 10:38:22 -0800 Subject: Clearing DB before restore starts. Bug: 18362052 Change-Id: Ic4faf04db2f76c0c434907f1c41c8b708283eeb7 --- .../launcher3/LauncherBackupAgentHelper.java | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/LauncherBackupAgentHelper.java b/src/com/android/launcher3/LauncherBackupAgentHelper.java index b03b13ccc..3868a57f1 100644 --- a/src/com/android/launcher3/LauncherBackupAgentHelper.java +++ b/src/com/android/launcher3/LauncherBackupAgentHelper.java @@ -69,13 +69,23 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper { Log.d(TAG, "Restore is only supported on devices running Lollipop and above."); return; } - super.onRestore(data, appVersionCode, newState); - // If no favorite was migrated, clear the data and start fresh. - final Cursor c = getContentResolver().query( - LauncherSettings.Favorites.CONTENT_URI_NO_NOTIFICATION, null, null, null, null); - boolean hasData = c.moveToNext(); - c.close(); + // Clear dB before restore + LauncherAppState.getLauncherProvider().createEmptyDB(); + + boolean hasData; + try { + super.onRestore(data, appVersionCode, newState); + // If no favorite was migrated, clear the data and start fresh. + final Cursor c = getContentResolver().query( + LauncherSettings.Favorites.CONTENT_URI_NO_NOTIFICATION, null, null, null, null); + hasData = c.moveToNext(); + c.close(); + } catch (Exception e) { + // If the restore fails, we should do a fresh start. + Log.e(TAG, "Restore failed", e); + hasData = false; + } if (hasData && mHelper.restoreSuccessful) { LauncherAppState.getLauncherProvider().clearFlagEmptyDbCreated(); -- cgit v1.2.3