Reduce default settings in WifiSetup XL.

We don't want to show every configurations in default, while
we also don't want to complicate basic wifi logics. In order to
achive both goals, we first introduce tweaked xml file
(wifi_config_preference2.xml). It does contain all the
config components but almost all of them are in "gone" visibility.
Those components are still able to act as data storage, but never
be seen as actual UI components.

Change-Id: I4ad3c1b4cbbe77ca2b628b0be25e2b3eb9d645aa
This commit is contained in:
Daisuke Miyakawa
2010-10-29 17:53:01 -07:00
parent 58524fc53d
commit 1dc3715e3a
7 changed files with 401 additions and 5 deletions

View File

@@ -22,7 +22,7 @@
android:paddingTop="60dip"
android:paddingLeft="100dip"
android:paddingRight="100dip"
android:paddingBottom="100dip">
android:paddingBottom="40dip">
<TextView
android:id="@+id/wifi_setup_title"
@@ -139,12 +139,22 @@
android:enabled="false" />
</RelativeLayout>
<Button android:id="@+id/wifi_setup_detail"
android:layout_width="260dip"
android:layout_height="60dip"
android:layout_above="@+id/wifi_setup_cancel"
android:layout_alignLeft="@+id/wifi_setup_cancel"
android:layout_marginBottom="30dip"
android:textSize="24dip"
android:text="@string/wifi_detail"
android:visibility="gone" />
<Button android:id="@+id/wifi_setup_cancel"
android:layout_width="260dip"
android:layout_height="60dip"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@id/right_buttons"
android:textSize="24dip"
android:text="@string/wifi_cancel"
android:text="@string/wifi_back"
android:visibility="gone" />
</RelativeLayout>

View File

@@ -0,0 +1,367 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 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.
-->
<!-- All ids in this layout must be in wifi_dialog.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- UI components that should be shown appropriately -->
<LinearLayout android:id="@+id/wps_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_wps_pin" />
<EditText android:id="@+id/wps_pin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textPassword" />
</LinearLayout>
<LinearLayout android:id="@+id/security_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_password" />
<EditText android:id="@+id/password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:password="true" />
<CheckBox android:id="@+id/show_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_show_password" />
</LinearLayout>
<!-- All the views below are "gone".
We want them as data storage, not as UI components. -->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<LinearLayout android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/> -->
<LinearLayout android:id="@+id/setup_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_network_setup" />
<Spinner android:id="@+id/network_setup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/wifi_network_setup"
android:entries="@array/wifi_network_setup" />
</LinearLayout>
<!--
<LinearLayout android:id="@+id/wps_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_wps_pin" />
<EditText android:id="@+id/wps_pin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textPassword" />
</LinearLayout> -->
<LinearLayout android:id="@+id/type"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_ssid" />
<EditText android:id="@+id/ssid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_security" />
<Spinner android:id="@+id/security"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/wifi_security"
android:entries="@array/wifi_security" />
</LinearLayout> <!-- android:id="@+id/type" -->
<!-- android:id="@+id/security_fields" -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout android:id="@+id/eap"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_eap_method" />
<Spinner android:id="@+id/method"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/wifi_eap_method"
android:entries="@array/wifi_eap_method" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/please_select_phase2" />
<Spinner android:id="@+id/phase2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/please_select_phase2"
android:entries="@array/wifi_phase2_entries" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_eap_ca_cert" />
<Spinner android:id="@+id/ca_cert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/wifi_eap_ca_cert" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_eap_user_cert" />
<Spinner android:id="@+id/user_cert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/wifi_eap_user_cert" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_eap_identity" />
<EditText android:id="@+id/identity"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_eap_anonymous" />
<EditText android:id="@+id/anonymous"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
</LinearLayout> <!-- android:id="@+id/eap" -->
<!-- <TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_password" />
<EditText android:id="@+id/password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:password="true" />
<CheckBox android:id="@+id/show_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_show_password" /> -->
</LinearLayout> <!-- android:id="@+id/security_fields" -->
<LinearLayout android:id="@+id/ip_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_ip_settings" />
<Spinner android:id="@+id/ip_settings"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/wifi_ip_settings"
android:entries="@array/wifi_ip_settings" />
</LinearLayout>
<LinearLayout android:id="@+id/staticip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_ip_address" />
<EditText android:id="@+id/ipaddress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_gateway" />
<EditText android:id="@+id/gateway"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_network_prefix_length" />
<EditText android:id="@+id/network_prefix_length"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_dns1" />
<EditText android:id="@+id/dns1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_dns2" />
<EditText android:id="@+id/dns2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<LinearLayout android:id="@+id/proxy_settings_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/proxy_settings_title" />
<Spinner android:id="@+id/proxy_settings"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/proxy_settings_title"
android:entries="@array/wifi_proxy_settings" />
</LinearLayout>
<LinearLayout android:id="@+id/proxy_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/proxy_hostname_label" />
<EditText android:id="@+id/proxy_hostname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/proxy_port_label" />
<EditText android:id="@+id/proxy_port"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/proxy_exclusionlist_label" />
<EditText android:id="@+id/proxy_exclusionlist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -989,6 +989,12 @@
<string name="wifi_save">Save</string>
<!-- Button label to dismiss the dialog -->
<string name="wifi_cancel">Cancel</string>
<!-- Button label to go back to previous screen. Used in SetupWizard for
XLarge screen [CHAR LIMIT=10]-->
<string name="wifi_back">Back</string>
<!-- Button label to show detailed dialog for WiFi settings.
Used in SetupWizard for XLarge screen [CHAR LIMIT=10]-->
<string name="wifi_detail">Detail</string>
<!-- Wi-Fi Advanced Settings --> <skip />
<!-- Wi-Fi settings screen, advanced, settings section. This is a header shown above advanced wifi settings. -->

View File

@@ -45,7 +45,8 @@ public class WifiConfigPreference extends Preference implements WifiConfigUiBase
AccessPoint accessPoint, boolean edit) {
super(wifiSettings.getActivity());
mWifiSettings = wifiSettings;
setLayoutResource(R.layout.wifi_config_preference);
// setLayoutResource(R.layout.wifi_config_preference);
setLayoutResource(R.layout.wifi_config_preference2);
mListener = listener;
mAccessPoint = accessPoint;
mEdit = edit;

View File

@@ -22,7 +22,7 @@ import android.widget.Button;
/**
* Foundation interface glues between Activities and UIs like
* {@link WifiDialog} or {@link WifiPreference}.
* {@link WifiDialog} or {@link WifiConfigPreference}.
*/
public interface WifiConfigUiBase {
public Context getContext();

View File

@@ -94,7 +94,7 @@ public class WifiSettings extends SettingsPreferenceFragment
// ListView won't become larger than the screen.
//
// This constant doesn't affect other contexts other than SetupWizard XL.
private static int MAX_MENU_COUNT_IN_XL = 6;
private static int MAX_MENU_COUNT_IN_XL = 8;
private final IntentFilter mFilter;
private final BroadcastReceiver mReceiver;
@@ -107,6 +107,7 @@ public class WifiSettings extends SettingsPreferenceFragment
private Preference mAddNetwork;
// An access point being editted is stored here.
private AccessPoint mSelectedAccessPoint;
private boolean mEdit;
private DetailedState mLastState;
private WifiInfo mLastInfo;
@@ -365,10 +366,12 @@ public class WifiSettings extends SettingsPreferenceFragment
synchronized (this) {
mRefrainListUpdate = false;
}
mEdit = edit;
if (mInXlSetupWizard) {
final Activity activity = getActivity();
activity.findViewById(R.id.wifi_setup_connect).setVisibility(View.VISIBLE);
activity.findViewById(R.id.wifi_setup_cancel).setVisibility(View.VISIBLE);
activity.findViewById(R.id.wifi_setup_detail).setVisibility(View.VISIBLE);
showConfigPreference(accessPoint, edit);
} else {
showDialog(accessPoint, edit);
@@ -400,6 +403,7 @@ public class WifiSettings extends SettingsPreferenceFragment
activity.findViewById(R.id.wifi_setup_connect).setVisibility(View.GONE);
activity.findViewById(R.id.wifi_setup_forget).setVisibility(View.GONE);
activity.findViewById(R.id.wifi_setup_cancel).setVisibility(View.GONE);
activity.findViewById(R.id.wifi_setup_detail).setVisibility(View.GONE);
} else {
activity.findViewById(R.id.wifi_setup_add_network).setVisibility(View.GONE);
activity.findViewById(R.id.wifi_setup_refresh_list).setVisibility(View.GONE);
@@ -417,6 +421,10 @@ public class WifiSettings extends SettingsPreferenceFragment
mDialog.show();
}
/* package */ void showDialogForSelectedPreference() {
showDialog(mSelectedAccessPoint, mEdit);
}
private boolean requireKeyStore(WifiConfiguration config) {
if (WifiConfigController.requireKeyStore(config) &&
KeyStore.getInstance().test() != KeyStore.NO_ERROR) {

View File

@@ -103,6 +103,7 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
((Button)findViewById(R.id.wifi_setup_connect)).setOnClickListener(this);
((Button)findViewById(R.id.wifi_setup_forget)).setOnClickListener(this);
((Button)findViewById(R.id.wifi_setup_cancel)).setOnClickListener(this);
((Button)findViewById(R.id.wifi_setup_detail)).setOnClickListener(this);
}
@Override
@@ -134,6 +135,9 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mStatusText.setText(R.string.wifi_setup_status_select_network);
mWifiSettings.detachConfigPreference();
break;
case R.id.wifi_setup_detail:
mWifiSettings.showDialogForSelectedPreference();
break;
}
hideSoftwareKeyboard();
}