Merge "Include reason when wiping data." into lmp-dev
diff --git a/res/drawable/default_preference_background.xml b/res/drawable/default_preference_background.xml
index bea5d3d..7f7b560 100644
--- a/res/drawable/default_preference_background.xml
+++ b/res/drawable/default_preference_background.xml
@@ -15,15 +15,8 @@
 -->
 
 <inset xmlns:android="http://schemas.android.com/apk/res/android"
-        android:insetLeft="0dip"
-        android:insetTop="0dip"
-        android:insetRight="0dip"
-        android:insetBottom="0dip">
+    android:inset="0dip">
 
-    <shape android:shape="rectangle">
-
-        <solid android:color="@color/default_preference_background_color" />
-
-    </shape>
+    <color android:color="?android:attr/colorBackground" />
 
 </inset>
diff --git a/res/drawable/preference_background.xml b/res/drawable/preference_background.xml
index f47bcf5..7f7b560 100644
--- a/res/drawable/preference_background.xml
+++ b/res/drawable/preference_background.xml
@@ -15,13 +15,8 @@
 -->
 
 <inset xmlns:android="http://schemas.android.com/apk/res/android"
-        android:insetLeft="0dip"
-        android:insetTop="0dip"
-        android:insetRight="0dip"
-        android:insetBottom="0dip">
+    android:inset="0dip">
 
-    <shape android:shape="rectangle">
-        <solid android:color="@color/preference_background_color" />
-    </shape>
+    <color android:color="?android:attr/colorBackground" />
 
 </inset>
diff --git a/res/drawable/search_panel_list_background.xml b/res/drawable/search_panel_list_background.xml
index a31e322..7f7b560 100644
--- a/res/drawable/search_panel_list_background.xml
+++ b/res/drawable/search_panel_list_background.xml
@@ -15,15 +15,8 @@
 -->
 
 <inset xmlns:android="http://schemas.android.com/apk/res/android"
-        android:insetLeft="0dip"
-        android:insetTop="0dip"
-        android:insetRight="0dip"
-        android:insetBottom="0dip">
+    android:inset="0dip">
 
-    <shape android:shape="rectangle">
-
-        <solid android:color="@color/search_panel_list_background_color" />
-
-    </shape>
+    <color android:color="?android:attr/colorBackground" />
 
 </inset>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 1c299f5..246a13f 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -73,13 +73,6 @@
     <color name="switchbar_background_color">#ff37474f</color>
     <color name="switch_accent_color">#ff7fcac3</color>
 
-    <color name="default_preference_background_color">@*android:color/background_material_light</color>
-    <color name="preference_background_color">@color/default_preference_background_color</color>
-    <color name="search_panel_list_background_color">@color/default_preference_background_color</color>
-
-    <color name="setup_wizard_preference_background_color_dark">@*android:color/background_material_dark</color>
-    <color name="setup_wizard_preference_background_color_light">@*android:color/background_material_light</color>
-
     <color name="wifi_divider">#ffe0e0e0</color>
 
 </resources>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index e9d4297..b4fb388 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -42,7 +42,7 @@
         <item name="setup_divider_color">@color/setup_divider_color_dark</item>
         <item name="wifi_signal_color">@color/setup_wizard_wifi_color_dark</item>
         <item name="wifi_signal">@drawable/wifi_signal_teal</item>
-        <item name="preferenceBackgroundColor">@color/setup_wizard_preference_background_color_dark</item>
+        <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
     </style>
 
     <style name="SetupWizardWifiTheme.Light" parent="android:Theme.Material.Light.NoActionBar">
@@ -59,7 +59,7 @@
         <item name="setup_divider_color">@color/setup_divider_color_light</item>
         <item name="wifi_signal_color">@color/setup_wizard_wifi_color_light</item>
         <item name="wifi_signal">@drawable/wifi_signal_teal</item>
-        <item name="preferenceBackgroundColor">@color/setup_wizard_preference_background_color_light</item>
+        <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
     </style>
 
     <style name="Theme.WifiDialog" parent="@*android:style/Theme.Material.Dialog.Alert">
@@ -145,6 +145,9 @@
     </style>
 
     <style name="Theme.DialogWhenLarge" parent="@android:style/Theme.Material.Light.DialogWhenLarge">
+        <!-- Explicitly override the background color. -->
+        <item name="android:colorBackground">@android:color/white</item>
+
         <!-- Used by the ActionBar -->
         <item name="android:colorPrimary">@color/theme_primary</item>
         <!-- Used by the StatusBar -->
@@ -179,6 +182,9 @@
     <style name="Theme.AlertDialog" parent="@*android:style/Theme.Material.Light.Dialog.Alert">
         <item name="android:windowSoftInputMode">adjustResize</item>
 
+        <!-- Explicitly override the background color. -->
+        <item name="android:colorBackground">@android:color/white</item>
+
         <!-- Used by the ActionBar -->
         <item name="android:colorPrimary">@color/theme_primary</item>
         <!-- Used by the StatusBar -->
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 84758d8..d04f6ac 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -96,6 +96,7 @@
         private int mRequestedQuality = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
         private ChooseLockSettingsHelper mChooseLockSettingsHelper;
         private Stage mUiStage = Stage.Introduction;
+        private boolean mDone = false;
         private TextView mHeaderText;
         private String mFirstPin;
         private KeyboardView mKeyboardView;
@@ -229,6 +230,7 @@
                     updateStage(mUiStage);
                 }
             }
+            mDone = false;
             if (activity instanceof SettingsActivity) {
                 final SettingsActivity sa = (SettingsActivity) activity;
                 int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header
@@ -389,6 +391,8 @@
         }
 
         private void handleNext() {
+            if (mDone) return;
+
             final String pin = mPasswordEntry.getText().toString();
             if (TextUtils.isEmpty(pin)) {
                 return;
@@ -409,6 +413,7 @@
                     mLockPatternUtils.saveLockPassword(pin, mRequestedQuality, isFallback);
                     getActivity().setResult(RESULT_FINISHED);
                     getActivity().finish();
+                    mDone = true;
                     startActivity(RedactionInterstitial.createStartIntent(getActivity()));
                 } else {
                     CharSequence tmp = mPasswordEntry.getText();
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index 9b3ce0a..c218c8d 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -290,6 +290,7 @@
         }
 
         private Stage mUiStage = Stage.Introduction;
+        private boolean mDone = false;
 
         private Runnable mClearPatternRunnable = new Runnable() {
             public void run() {
@@ -363,6 +364,7 @@
                 }
                 updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]);
             }
+            mDone = false;
             return view;
         }
 
@@ -519,6 +521,7 @@
         }
 
         private void saveChosenPatternAndFinish() {
+            if (mDone) return;
             LockPatternUtils utils = mChooseLockSettingsHelper.utils();
             final boolean lockVirgin = !utils.isPatternEverChosen();
 
@@ -533,6 +536,7 @@
 
             getActivity().setResult(RESULT_FINISHED);
             getActivity().finish();
+            mDone = true;
             startActivity(RedactionInterstitial.createStartIntent(getActivity()));
         }
     }
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index 560fe76..adc1b2d 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -155,6 +155,13 @@
     }
 
     private class DecryptTask extends AsyncTask<String, Void, Integer> {
+        private void hide(int id) {
+            View view = findViewById(id);
+            if (view != null) {
+                view.setVisibility(View.GONE);
+            }
+        }
+
         @Override
         protected Integer doInBackground(String... params) {
             final IMountService service = getMountService();
@@ -175,6 +182,12 @@
                     mLockPatternView.removeCallbacks(mClearPatternRunnable);
                     mLockPatternView.postDelayed(mClearPatternRunnable, RIGHT_PATTERN_CLEAR_TIMEOUT_MS);
                 }
+                hide(R.id.passwordEntry);
+                hide(R.id.switch_ime_button);
+                hide(R.id.lockPattern);
+                hide(R.id.status);
+                hide(R.id.owner_info);
+                hide(R.id.emergencyCallButton);
             } else if (failedAttempts == MAX_FAILED_ATTEMPTS) {
                 // Factory reset the device.
                 Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR);