Updating backup restore logic

> Adding DeviceProfile information in the backup
> Removing SharedPreference backup
> Adding helper methods to abort backup in the middle
> Comparing keys against the backup journal during restore
to avoid restoring corrupt/lost entries
> Old backups are still compatible, but lost keys verification
will be ignored in that case.

Bug: 17937935
Bug: 17951775
Bug: 17260941
Change-Id: Iad48646cfdd69abaff5c163b2055f3b8a9b39b19
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index fe9bc17..365d989 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -293,6 +293,14 @@
         mOpenHelper.createEmptyDB(mOpenHelper.getWritableDatabase());
     }
 
+    public void clearFlagEmptyDbCreated() {
+        String spKey = LauncherAppState.getSharedPreferencesKey();
+        getContext().getSharedPreferences(spKey, Context.MODE_PRIVATE)
+            .edit()
+            .remove(EMPTY_DATABASE_CREATED)
+            .commit();
+    }
+
     /**
      * Loads the default workspace based on the following priority scheme:
      *   1) From a package provided by play store
@@ -334,7 +342,7 @@
                 mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(),
                         getDefaultLayoutParser());
             }
-            sp.edit().remove(EMPTY_DATABASE_CREATED).commit();
+            clearFlagEmptyDbCreated();
         }
     }