SetupWizard: Part 1: Initial wizard manager conversion

Part 1 implements SetupWizard support if GMS is present.

Change-Id: I0d465a9d84f0c477acc8309511894e9b194762f7
diff --git a/src/com/cyanogenmod/setupwizard/SetupWizardApp.java b/src/com/cyanogenmod/setupwizard/SetupWizardApp.java
index f16dd9d..41d2bd8 100644
--- a/src/com/cyanogenmod/setupwizard/SetupWizardApp.java
+++ b/src/com/cyanogenmod/setupwizard/SetupWizardApp.java
@@ -18,16 +18,13 @@
 
 
 import android.app.Application;
-import android.app.StatusBarManager;
-import android.content.Context;
 import android.content.pm.PackageManager;
+import android.os.Bundle;
 import android.os.Handler;
 import android.provider.Settings;
 
 import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
 
-import cyanogenmod.providers.CMSettings;
-
 public class SetupWizardApp extends Application {
 
     public static final String TAG = SetupWizardApp.class.getSimpleName();
@@ -36,11 +33,7 @@
 
     public static final String ACTION_FINISHED = "com.cyanogenmod.setupwizard.SETUP_FINISHED";
 
-    public static final String ACCOUNT_TYPE_CYANOGEN = "com.cyanogen";
-    public static final String ACCOUNT_TYPE_GMS = "com.google";
-
     public static final String ACTION_SETUP_WIFI = "com.android.net.wifi.SETUP_WIFI_NETWORK";
-    public static final String ACTION_VIEW_LEGAL = "cyanogenmod.intent.action.LEGALESE";
 
     public static final String ACTION_SETUP_FINGERPRINT = "android.settings.FINGERPRINT_SETUP";
     public static final String ACTION_SETUP_LOCKSCREEN = "com.android.settings.SETUP_LOCK_SCREEN";
@@ -48,19 +41,18 @@
     public static final String EXTRA_FIRST_RUN = "firstRun";
     public static final String EXTRA_ALLOW_SKIP = "allowSkip";
     public static final String EXTRA_AUTO_FINISH = "wifi_auto_finish_on_connect";
-    public static final String EXTRA_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
     public static final String EXTRA_USE_IMMERSIVE = "useImmersiveMode";
     public static final String EXTRA_THEME = "theme";
     public static final String EXTRA_MATERIAL_LIGHT = "material_light";
-    public static final String EXTRA_CKSOP = "cksOp";
-    public static final String EXTRA_LOGIN_FOR_KILL_SWITCH = "authCks";
     public static final String EXTRA_TITLE = "title";
     public static final String EXTRA_DETAILS = "details";
-    public static final String EXTRA_FRAGMENT = "fragment";
-    public static final String EXTRA_ACTION_ID = "actionId";
-    public static final String EXTRA_SUPRESS_D2D_SETUP = "suppress_device_to_device_setup";
 
     public static final String KEY_DETECT_CAPTIVE_PORTAL = "captive_portal_detection_enabled";
+    public static final String KEY_SEND_METRICS = "send_metrics";
+    public static final String DISABLE_NAV_KEYS = "disable_nav_keys";
+    public static final String KEY_APPLY_DEFAULT_THEME = "apply_default_theme";
+    public static final String KEY_BUTTON_BACKLIGHT = "pre_navbar_button_backlight";
+    public static final String KEY_PRIVACY_GUARD = "privacy_guard_default";
 
     private static final String[] THEME_PACKAGES = {
             "org.cyanogenmod.theme.chooser",
@@ -70,24 +62,19 @@
     };
 
     public static final int REQUEST_CODE_SETUP_WIFI = 0;
-    public static final int REQUEST_CODE_SETUP_GMS= 1;
-    public static final int REQUEST_CODE_RESTORE_GMS= 2;
-    public static final int REQUEST_CODE_SETUP_CYANOGEN= 3;
     public static final int REQUEST_CODE_SETUP_CAPTIVE_PORTAL= 4;
     public static final int REQUEST_CODE_SETUP_BLUETOOTH= 5;
     public static final int REQUEST_CODE_UNLOCK = 6;
     public static final int REQUEST_CODE_SETUP_FINGERPRINT = 7;
-    public static final int REQUEST_CODE_VENDOR_SETUP_GMS = 8;
     public static final int REQUEST_CODE_SETUP_LOCKSCREEN = 9;
 
     public static final int RADIO_READY_TIMEOUT = 10 * 1000;
 
     private boolean mIsRadioReady = false;
-
     private boolean mIsAuthorized = false;
+    private boolean mIgnoreSimLocale = false;
 
-    private StatusBarManager mStatusBarManager;
-
+    private final Bundle mSettingsBundle = new Bundle();
     private final Handler mHandler = new Handler();
 
     private final Runnable mRadioTimeoutRunnable = new Runnable() {
@@ -100,35 +87,16 @@
     @Override
     public void onCreate() {
         super.onCreate();
-        mStatusBarManager = (StatusBarManager)getSystemService(Context.STATUS_BAR_SERVICE);
-        try {
-            // Since this is a new component, we need to disable here if the user
-            // has already been through setup on a previous version.
-            final boolean isOwner = SetupWizardUtils.isOwner();
-            if (!isOwner
-                    || Settings.Secure.getInt(getContentResolver(),
-                    Settings.Secure.USER_SETUP_COMPLETE) == 1) {
-                Thread t = new Thread(){
-                    @Override
-                    public void run() {
-                        Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
-                        Settings.Secure.putInt(getContentResolver(),
-                                Settings.Secure.USER_SETUP_COMPLETE, 1);
-                        CMSettings.Secure.putInt(getContentResolver(),
-                                CMSettings.Secure.CM_SETUP_WIZARD_COMPLETED, 1);
-                        SetupWizardUtils.disableGMSSetupWizard(SetupWizardApp.this);
-                        SetupWizardUtils.disableSetupWizard(SetupWizardApp.this);
-                        if (!isOwner) {
-                            disableThemeComponentsForSecondaryUser();
-                        }
-                    }
-                };
-                t.run();
-            }  else {
-                disableCaptivePortalDetection();
-            }
-        } catch (Settings.SettingNotFoundException e) {
-            // Continue with setup
+        final boolean isOwner = SetupWizardUtils.isOwner();
+        if (!isOwner) {
+            Thread t = new Thread(){
+                @Override
+                public void run() {
+                    disableThemeComponentsForSecondaryUser();
+                }
+            };
+            t.run();
+        }  else {
             disableCaptivePortalDetection();
         }
         mHandler.postDelayed(mRadioTimeoutRunnable, SetupWizardApp.RADIO_READY_TIMEOUT);
@@ -153,18 +121,16 @@
         mIsAuthorized = isAuthorized;
     }
 
-    public void disableStatusBar() {
-        mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND |
-                StatusBarManager.DISABLE_NOTIFICATION_ALERTS |
-                StatusBarManager.DISABLE_NOTIFICATION_ICONS |
-                StatusBarManager.DISABLE_NOTIFICATION_TICKER |
-                StatusBarManager.DISABLE_RECENT |
-                StatusBarManager.DISABLE_HOME |
-                StatusBarManager.DISABLE_SEARCH);
+    public boolean ignoreSimLocale() {
+        return mIgnoreSimLocale;
     }
 
-    public void enableStatusBar() {
-        mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+    public void setIgnoreSimLocale(boolean ignoreSimLocale) {
+        mIgnoreSimLocale = ignoreSimLocale;
+    }
+
+    public Bundle getSettingsBundle() {
+        return mSettingsBundle;
     }
 
     public void disableCaptivePortalDetection() {