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
This commit is contained in:
Daisuke Miyakawa
2011-01-15 14:58:00 -08:00
parent 3b9b6533a5
commit 79c5fd971e
5 changed files with 84 additions and 4 deletions

View File

@@ -110,7 +110,6 @@
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.WIFI_SETTINGS" /> <action android:name="android.settings.WIFI_SETTINGS" />
<action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" /> <category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="com.android.settings.SHORTCUT" /> <category android:name="com.android.settings.SHORTCUT" />
@@ -125,6 +124,16 @@
android:value="com.android.settings.Settings$WirelessSettingsActivity" /> android:value="com.android.settings.Settings$WirelessSettingsActivity" />
</activity> </activity>
<activity android:name=".wifi.WifiPickerActivity"
android:theme="@android:style/Theme.Holo"
android:clearTaskOnLaunch="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".wifi.WifiSettingsForSetupWizardXL" <activity android:name=".wifi.WifiSettingsForSetupWizardXL"
android:theme="@android:style/Theme.Holo.NoActionBar" android:theme="@android:style/Theme.Holo.NoActionBar"
android:clearTaskOnLaunch="true" android:clearTaskOnLaunch="true"

View File

@@ -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();
}

View File

@@ -34,7 +34,7 @@ import java.util.List;
/** /**
* Top-level settings activity to handle single pane and double pane UI layout. * 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 = private static final String META_DATA_KEY_HEADER_ID =
"com.android.settings.TOP_LEVEL_HEADER_ID"; "com.android.settings.TOP_LEVEL_HEADER_ID";

View File

@@ -158,11 +158,11 @@ public class SettingsPreferenceFragment extends PreferenceFragment
} }
protected boolean hasNextButton() { protected boolean hasNextButton() {
return ((Settings)getActivity()).hasNextButton(); return ((ButtonBarHandler)getActivity()).hasNextButton();
} }
protected Button getNextButton() { protected Button getNextButton() {
return ((Settings)getActivity()).getNextButton(); return ((ButtonBarHandler)getActivity()).getNextButton();
} }
public void finish() { public void finish() {

View File

@@ -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();
}
}