Use Drawer in Settings app

- get rid of PreferenceActivity as much as we can and use fragments instead
- add Drawer widget
- add Dashboard high level entry into the Drawer (but this is work in progress and would be done in another CL)
- add bypass of fragment's Header  validation when launched from the Drawer but *force* validation if external
call thru an Intent

Be aware that WifiPickerActivity should remain for now a PreferenceActivity. It is used by SetupWizard and should
not trigger running the SettingsActivity's header building code. SetupWizard is a Home during the provisionnig process
and then deactivate itself as a Home but would make the Home header to appear in the Drawer (because momentarily we
would have two Home).

Also, verified that:

- the WiFi settings still work when called from SetupWizard
- when you have multiple Launchers, the Home header will appear in the list of Headers in the Drawer

Change-Id: I407a5e0fdd843ad7615d3d511c416a44e3d97c90
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index f43738f..4d102a4 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -19,7 +19,6 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.PasswordEntryKeyboardHelper;
 import com.android.internal.widget.PasswordEntryKeyboardView;
-import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
 
 import android.app.Activity;
 import android.app.Fragment;
@@ -29,7 +28,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.preference.PreferenceActivity;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.Selection;
@@ -41,13 +39,12 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.View.OnClickListener;
-import android.view.accessibility.AccessibilityEvent;
 import android.view.inputmethod.EditorInfo;
 import android.widget.Button;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-public class ChooseLockPassword extends PreferenceActivity {
+public class ChooseLockPassword extends SettingsActivity {
     public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
     public static final String PASSWORD_MAX_KEY = "lockscreen.password_max";
     public static final String PASSWORD_MIN_LETTERS_KEY = "lockscreen.password_min_letters";
@@ -79,7 +76,7 @@
                 //WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
         super.onCreate(savedInstanceState);
         CharSequence msg = getText(R.string.lockpassword_choose_your_password_header);
-        showBreadCrumbs(msg, msg);
+        setTitle(msg);
     }
 
     public static class ChooseLockPasswordFragment extends Fragment
@@ -137,9 +134,6 @@
                     R.string.lockpassword_confirm_pins_dont_match,
                     R.string.lockpassword_continue_label);
 
-            /**
-             * @param headerMessage The message displayed at the top.
-             */
             Stage(int hintInAlpha, int hintInNumeric, int nextButtonText) {
                 this.alphaHint = hintInAlpha;
                 this.numericHint = hintInNumeric;
@@ -235,13 +229,12 @@
                     updateStage(mUiStage);
                 }
             }
-            // Update the breadcrumb (title) if this is embedded in a PreferenceActivity
-            if (activity instanceof PreferenceActivity) {
-                final PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
+            if (activity instanceof SettingsActivity) {
+                final SettingsActivity sa = (SettingsActivity) activity;
                 int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header
                         : R.string.lockpassword_choose_your_pin_header;
                 CharSequence title = getText(id);
-                preferenceActivity.showBreadCrumbs(title, title);
+                sa.setTitle(title);
             }
 
             return view;