hide launcher restore behind a flag.

enable with 'adb shell settings put secure launcher_restore_enabled 1'
before signing into wiped device

Bug: 12532845
Change-Id: I1471c39dac2e6e1412f7720b1ba8edf46273c593
diff --git a/src/com/android/launcher3/LauncherBackupAgentHelper.java b/src/com/android/launcher3/LauncherBackupAgentHelper.java
index 83e4a60..876cf08 100644
--- a/src/com/android/launcher3/LauncherBackupAgentHelper.java
+++ b/src/com/android/launcher3/LauncherBackupAgentHelper.java
@@ -21,6 +21,7 @@
 import android.app.backup.SharedPreferencesBackupHelper;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.provider.Settings;
 
 public class LauncherBackupAgentHelper extends BackupAgentHelper {
 
@@ -28,6 +29,8 @@
 
     private static BackupManager sBackupManager;
 
+    protected static final String SETTING_RESTORE_ENABLED = "launcher_restore_enabled";
+
     /**
      * Notify the backup manager that out database is dirty.
      *
@@ -54,9 +57,15 @@
 
     @Override
     public void onCreate() {
+
+        boolean restoreEnabled = 0 != Settings.Secure.getInt(
+                getContentResolver(), SETTING_RESTORE_ENABLED, 0);
+
         addHelper(LauncherBackupHelper.LAUNCHER_PREFS_PREFIX,
-                new SharedPreferencesBackupHelper(this,
-                        LauncherAppState.getSharedPreferencesKey()));
-        addHelper(LauncherBackupHelper.LAUNCHER_PREFIX, new LauncherBackupHelper(this));
+                new LauncherPreferencesBackupHelper(this,
+                        LauncherAppState.getSharedPreferencesKey(),
+                        restoreEnabled));
+        addHelper(LauncherBackupHelper.LAUNCHER_PREFIX,
+                new LauncherBackupHelper(this, restoreEnabled));
     }
 }