Add WifiPickerActivity for PICK_WIFI_NETWORK

- We disable left pane when PICK_WIFI_NETWORK intent is used.
- Add ButtonBarHandler interface and let SettingsPreferenceFragment
  use it instead of Settings. Note that
  PreferenceActivity#hasNextButton() and
  PreferenceActivity#getNextButton() are currently protected methods,
  while Settings' relevants are public.

Bug: 3355247
Change-Id: Ie0fae8a1dbce9c7ce37375dff8395dc09b1cc74e
diff --git a/src/com/android/settings/ButtonBarHandler.java b/src/com/android/settings/ButtonBarHandler.java
new file mode 100644
index 0000000..d61da13
--- /dev/null
+++ b/src/com/android/settings/ButtonBarHandler.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings;
+
+import android.widget.Button;
+
+/**
+ * Interface letting {@link SettingsPreferenceFragment} access to bottom bar inside
+ * {@link android.preference.PreferenceActivity}.
+ */
+public interface ButtonBarHandler {
+    public boolean hasNextButton();
+    public Button getNextButton();
+}
\ No newline at end of file
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 613b082..11d8c57 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -34,7 +34,7 @@
 /**
  * Top-level settings activity to handle single pane and double pane UI layout.
  */
-public class Settings extends PreferenceActivity {
+public class Settings extends PreferenceActivity implements ButtonBarHandler {
 
     private static final String META_DATA_KEY_HEADER_ID =
             "com.android.settings.TOP_LEVEL_HEADER_ID";
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 0db4f8b..47e31ee 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -158,11 +158,11 @@
     }
 
     protected boolean hasNextButton() {
-        return ((Settings)getActivity()).hasNextButton();
+        return ((ButtonBarHandler)getActivity()).hasNextButton();
     }
 
     protected Button getNextButton() {
-        return ((Settings)getActivity()).getNextButton();
+        return ((ButtonBarHandler)getActivity()).getNextButton();
     }
 
     public void finish() {
diff --git a/src/com/android/settings/wifi/WifiPickerActivity.java b/src/com/android/settings/wifi/WifiPickerActivity.java
new file mode 100644
index 0000000..7b972fc
--- /dev/null
+++ b/src/com/android/settings/wifi/WifiPickerActivity.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.wifi;
+
+import com.android.settings.ButtonBarHandler;
+
+import android.content.Intent;
+import android.preference.PreferenceActivity;
+import android.widget.Button;
+
+public class WifiPickerActivity extends PreferenceActivity implements ButtonBarHandler {
+    @Override
+    public Intent getIntent() {
+        Intent modIntent = new Intent(super.getIntent());
+        modIntent.putExtra(EXTRA_SHOW_FRAGMENT, WifiSettings.class.getName());
+        modIntent.putExtra(EXTRA_NO_HEADERS, true);
+        return modIntent;
+    }
+
+    @Override
+    public boolean hasNextButton() {
+        // PreferenceActivity#hasNextButton() is protected, so we need to expose it here.
+        return super.hasNextButton();
+    }
+
+    @Override
+    public Button getNextButton() {
+        // PreferenceActivity#getNextButton() is protected, so we need to expose it here.
+        return super.getNextButton();
+    }
+}
\ No newline at end of file