diff options
-rw-r--r-- | res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml | 197 | ||||
-rw-r--r-- | res/layout/wifi_config_ui_for_setup_wizard.xml | 150 | ||||
-rw-r--r-- | res/values/strings.xml | 16 | ||||
-rw-r--r-- | src/com/android/settings/wifi/WifiConfigUiBase.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java | 58 | ||||
-rw-r--r-- | src/com/android/settings/wifi/WifiSettings.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java | 153 |
7 files changed, 307 insertions, 271 deletions
diff --git a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml index df6cfbf..29427d4 100644 --- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml +++ b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml @@ -19,46 +19,43 @@ android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" - android:paddingTop="120dip" + android:paddingTop="60dip" android:paddingLeft="128dip" android:paddingRight="128dip" android:paddingBottom="0dip" > - <RelativeLayout - android:id="@+id/title_bar" + <FrameLayout + android:id="@+id/top_padding_layout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:minHeight="48dip" android:layout_alignParentTop="true"> + <!-- Set to gone when software keyboard appears --> + <View + android:id="@+id/top_padding" + android:layout_width="match_parent" + android:layout_height="94dip" /> + </FrameLayout> - <TextView - android:id="@+id/wifi_setup_title" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentLeft="true" - android:layout_centerVertical="true" - android:layout_marginLeft="16dip" - android:textSize="30dip" - android:textColor="#FF99cc00" - android:text="@string/wifi_setup_title"/> - - <TextView - android:id="@+id/scanning_progress_text" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" - android:layout_marginRight="16dip" - android:textAppearance="?android:attr/textAppearanceSmall" - android:textColor="#6699cc00" /> - </RelativeLayout> + <TextView + android:id="@+id/wifi_setup_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:minHeight="48dip" + android:layout_alignParentLeft="true" + android:layout_centerVertical="true" + android:layout_marginLeft="16dip" + android:layout_below="@id/top_padding_layout" + android:textSize="30dip" + android:textColor="#ff99cc00" + android:text="@string/wifi_setup_title" + android:gravity="bottom"/> <!-- Divider --> <RelativeLayout android:id="@+id/top_divider" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@id/title_bar"> + android:layout_below="@id/wifi_setup_title"> <ProgressBar android:id="@+id/scanning_progress_bar" android:layout_width="match_parent" @@ -66,35 +63,19 @@ style="?android:attr/progressBarStyleHorizontal" /> </RelativeLayout> - <TextView - android:id="@+id/wifi_setup_status" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_below="@+id/top_divider" - android:layout_alignParentLeft="true" - android:layout_marginLeft="16dip" - android:layout_marginTop="16dip" - android:layout_marginBottom="0dip" - android:text="@string/wifi_setup_status_select_network" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <FrameLayout + <RelativeLayout android:id="@+id/content" - android:layout_width="wrap_content" + android:layout_width="716dip" android:layout_height="wrap_content" - android:minHeight="138dip" - android:layout_below="@+id/wifi_setup_status" - android:layout_alignParentLeft="true" - android:layout_marginTop="0dip" - android:layout_marginLeft="16dip" - android:layout_marginRight="16dip" + android:layout_below="@id/top_divider" + android:layout_centerHorizontal="true" + android:layout_marginTop="10dip" android:layout_marginBottom="0dip"> <FrameLayout android:id="@+id/wifi_setup" - android:layout_width="416dip" - android:layout_height="383dip" - android:paddingTop="16dip"> + android:layout_width="match_parent" + android:layout_height="360dip"> <fragment class="com.android.settings.wifi.WifiSettings" android:id="@+id/wifi_setup_fragment" @@ -103,62 +84,76 @@ </FrameLayout> <FrameLayout android:id="@+id/wifi_config_ui" - android:layout_width="416dip" + android:layout_width="wrap_content" + android:minWidth="406dip" android:layout_height="wrap_content" - android:paddingTop="16dip" + android:minHeight="176dip" + android:layout_alignParentLeft="true" android:visibility="gone" /> - </FrameLayout> + <View + android:id="@+id/wifi_config_padding" + android:layout_width="match_parent" + android:layout_height="360dip" + android:visibility="gone" /> + </RelativeLayout> - <LinearLayout - android:id="@+id/right_buttons" - android:layout_width="wrap_content" + <!-- Divider --> + <View + android:id="@+id/bottom_divider" + android:layout_width="match_parent" + android:layout_height="3dip" + android:layout_marginBottom="16dip" + android:layout_below="@id/content" + android:layout_alignLeft="@id/content" + android:background="@color/divider_color" /> <!-- TODO: fix this --> + + <RelativeLayout + android:id="@+id/bottom_buttons" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical" + android:layout_below="@id/bottom_divider" + android:layout_alignLeft="@id/bottom_divider" android:layout_alignParentRight="true" - android:layout_marginRight="16dip" - android:layout_alignBottom="@+id/content" - android:layout_marginBottom="16dip"> - - <Button android:id="@+id/wifi_setup_forget" - style="@style/setup_wizard_button" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_forget" - android:visibility="gone" /> - - <Button android:id="@+id/wifi_setup_connect" - style="@style/setup_wizard_button" - android:layout_marginTop="96dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_connect" - android:enabled="false" - android:visibility="gone" /> - - <Button android:id="@+id/wifi_setup_add_network" - style="@style/setup_wizard_button" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_add_network" - android:enabled="false" /> - - <Button android:id="@+id/wifi_setup_refresh_list" - style="@style/setup_wizard_button" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_refresh_list" - android:enabled="false" /> - - <Button android:id="@+id/wifi_setup_skip_or_next" - style="@style/setup_wizard_button" - android:layout_marginTop="96dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_skip" - android:enabled="false" /> - </LinearLayout> - - <!-- This misleading name is for keeping consistency between non-XL layouts --> - <Button android:id="@+id/wifi_setup_cancel" + android:layout_alignParentBottom="true"> + + <Button + android:id="@+id/wifi_setup_add_network" style="@style/setup_wizard_button" - android:layout_marginBottom="16dip" - android:layout_alignBottom="@+id/content" - android:layout_toLeftOf="@id/right_buttons" - android:text="@string/wifi_setup_back" - android:visibility="gone" /> + android:layout_alignParentLeft="true" + android:text="@string/wifi_setup_add_network" + android:enabled="false" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:orientation="horizontal"> + + <!-- This misleading name is for keeping consistency between non-XL + layouts --> + <Button android:id="@+id/wifi_setup_cancel" + style="@style/setup_wizard_button" + android:text="@string/wifi_setup_back" + android:visibility="gone" /> + + <Button android:id="@+id/wifi_setup_connect" + style="@style/setup_wizard_button" + android:layout_marginLeft="16dip" + android:text="@string/wifi_setup_connect" + android:enabled="false" + android:visibility="gone" /> + + <Button android:id="@+id/wifi_setup_refresh_list" + style="@style/setup_wizard_button" + android:layout_marginLeft="16dip" + android:text="@string/wifi_setup_refresh_list" + android:enabled="false" /> + + <Button android:id="@+id/wifi_setup_skip_or_next" + style="@style/setup_wizard_button" + android:layout_marginLeft="16dip" + android:text="@string/wifi_setup_skip" + android:enabled="false" /> + </LinearLayout> + </RelativeLayout> </RelativeLayout> diff --git a/res/layout/wifi_config_ui_for_setup_wizard.xml b/res/layout/wifi_config_ui_for_setup_wizard.xml index c96a15c..0154a3c 100644 --- a/res/layout/wifi_config_ui_for_setup_wizard.xml +++ b/res/layout/wifi_config_ui_for_setup_wizard.xml @@ -16,13 +16,15 @@ <!-- 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"> + android:layout_width="match_parent" + android:layout_height="match_parent"> + <!-- TODO: remove this once we confirm it is needless --> <LinearLayout android:id="@+id/wifi_general_info" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical"> + android:orientation="vertical" + android:visibility="gone"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -43,72 +45,76 @@ <!-- UI components that should be shown appropriately --> <LinearLayout android:id="@+id/wps_fields" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_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_width="match_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" /> + <LinearLayout android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <TextView android:layout_width="wrap_content" + android:minWidth="88dip" + android:layout_height="wrap_content" + android:text="@string/wifi_password" /> + <EditText android:id="@+id/password" + android:layout_width="320dip" + android:layout_height="wrap_content" + android:singleLine="true" + android:password="true" /> + </LinearLayout> <CheckBox android:id="@+id/show_password" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_show_password" /> </LinearLayout> <LinearLayout android:id="@+id/type" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> - <TextView android:layout_width="fill_parent" + <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_ssid" /> <EditText android:id="@+id/ssid" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> - <TextView android:layout_width="fill_parent" + <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_security" /> <Spinner android:id="@+id/security" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:prompt="@string/wifi_security" android:entries="@array/wifi_security" /> </LinearLayout> <!-- android:id="@+id/type" --> <LinearLayout android:id="@+id/eap_not_supported" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="32dip" + android:minHeight="360dip" android:orientation="vertical" android:visibility="gone"> <TextView android:layout_width="match_parent" @@ -127,23 +133,23 @@ android:visibility="gone"> <LinearLayout android:id="@+id/info" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"/> <LinearLayout android:id="@+id/setup_fields" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:prompt="@string/wifi_network_setup" android:entries="@array/wifi_network_setup" /> @@ -152,18 +158,18 @@ <!-- <LinearLayout android:id="@+id/wps_fields" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textPassword" /> @@ -171,225 +177,225 @@ <!-- android:id="@+id/security_fields" --> <LinearLayout - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <LinearLayout android:id="@+id/eap" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_eap_method" /> <Spinner android:id="@+id/method" - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:text="@string/please_select_phase2" /> <Spinner android:id="@+id/phase2" - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_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_width="match_parent" android:layout_height="wrap_content" android:prompt="@string/wifi_eap_ca_cert" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:prompt="@string/wifi_eap_user_cert" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_eap_identity" /> <EditText android:id="@+id/identity" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_eap_anonymous" /> <EditText android:id="@+id/anonymous" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> </LinearLayout> <!-- android:id="@+id/eap" --> - <!-- <TextView android:layout_width="fill_parent" + <!-- <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_password" /> <EditText android:id="@+id/password" - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_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_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_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_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_ip_address" /> <EditText android:id="@+id/ipaddress" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_gateway" /> <EditText android:id="@+id/gateway" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_dns1" /> <EditText android:id="@+id/dns1" - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> <TextView - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/wifi_dns2" /> <EditText android:id="@+id/dns2" - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> <TextView android:id="@+id/proxy_settings_title" - android:layout_width="fill_parent" + android:layout_width="match_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_width="match_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_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> - <TextView android:layout_width="fill_parent" + <TextView android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> - <TextView android:layout_width="fill_parent" + <TextView android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> - <TextView android:layout_width="fill_parent" + <TextView android:layout_width="match_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_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:inputType="textNoSuggestions" /> diff --git a/res/values/strings.xml b/res/values/strings.xml index a1d58bd..26bead9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2962,8 +2962,22 @@ found in the list of installed applications.</string> <string name="sound_category_feedback_title">Feedback</string> <!-- Wifi Setup For Setup Wizard with XL screen --> - <!-- Title shown in Wifi Setup For Setup Wizard with XL screen --> + <!-- Title shown in Wifi Setup Wizard with XL screen --> <string name="wifi_setup_title">Wi-Fi setup</string> + <!-- Title shown in Wifi Setup Wizard with XL screen when + a user is configuring password for a network. + The argument should be the name of the network. + [CHAR LIMIT=50] --> + <string name="wifi_setup_title_editing_network">Connect to Wi-Fi network <xliff:g id="network_name" example="Happy Mobile">%s</xliff:g></string> + <!-- Title shown in Wifi Setup For Setup Wizard with XL screen when + the device is connecting a network the user specified. + The argument should be the name of the network. + [CHAR LIMIT=50] --> + <string name="wifi_setup_title_connecting_network">Connecting to Wi-Fi network <xliff:g id="network_name" example="Happy Mobile">%s</xliff:g>...</string> + <!-- Title shown in Wifi Setup For Setup Wizard with XL screen when + a user is adding a network. + [CHAR LIMIT=50] --> + <string name="wifi_setup_title_add_network">Add a network</string> <!-- Text message shown when Wifi is not connected. Used in Wifi Setup For Setup Wizard with XL screen. --> <string name="wifi_setup_not_connected">Not connected</string> diff --git a/src/com/android/settings/wifi/WifiConfigUiBase.java b/src/com/android/settings/wifi/WifiConfigUiBase.java index d930b58..11dcc00 100644 --- a/src/com/android/settings/wifi/WifiConfigUiBase.java +++ b/src/com/android/settings/wifi/WifiConfigUiBase.java @@ -22,7 +22,7 @@ import android.widget.Button; /** * Foundation interface glues between Activities and UIs like - * {@link WifiDialog} or {@link WifiConfigPreference}. + * {@link WifiDialog} or {@link WifiConfigUiForSetupWizardXL}. */ public interface WifiConfigUiBase { public Context getContext(); diff --git a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java index bbd8f80..bffcc61 100644 --- a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java +++ b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java @@ -18,7 +18,6 @@ package com.android.settings.wifi; import com.android.settings.R; -import android.app.Activity; import android.content.Context; import android.os.Handler; import android.util.Log; @@ -38,16 +37,17 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh private static final String TAG = "SetupWizard"; private Button mConnectButton; - private Button mForgetButton; private Button mCancelButton; - private final Activity mActivity; + private final WifiSettingsForSetupWizardXL mActivity; private View mView; private WifiConfigController mController; private AccessPoint mAccessPoint; private boolean mEdit; private Handler mHandler = new Handler(); + private final InputMethodManager mInputMethodManager; + private LayoutInflater mInflater; /** @@ -58,10 +58,10 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh * @param edit */ public WifiConfigUiForSetupWizardXL( - Activity activity, ViewGroup parent, AccessPoint accessPoint, boolean edit) { + WifiSettingsForSetupWizardXL activity, ViewGroup parent, + AccessPoint accessPoint, boolean edit) { mActivity = activity; mConnectButton = (Button)activity.findViewById(R.id.wifi_setup_connect); - mForgetButton = (Button)activity.findViewById(R.id.wifi_setup_forget); mCancelButton = (Button)activity.findViewById(R.id.wifi_setup_cancel); mAccessPoint = accessPoint; mEdit = edit; @@ -70,12 +70,14 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh mView = mInflater.inflate(R.layout.wifi_config_ui_for_setup_wizard, parent, true); mController = new WifiConfigController(this, mView, mAccessPoint, edit); - // Assumes R.id.password is inside security_fields. - // TODO: confirm it is ok to assume R.id.password is the only EditText to be focused, and - // R.id.security_fields is the only parent for possible EditTexts. Possibly we need to - // check parentand detect visibility manually. + mInputMethodManager = (InputMethodManager) + activity.getSystemService(Context.INPUT_METHOD_SERVICE); + if (mView.findViewById(R.id.security_fields).getVisibility() == View.VISIBLE) { requestFocusAndShowKeyboard(R.id.password); + } else if (mView.findViewById(R.id.type).getVisibility() == View.VISIBLE) { + // Add Network flow. + requestFocusAndShowKeyboard(R.id.ssid); } } @@ -90,13 +92,17 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh } else if (!(viewToBeFocused instanceof EditText)) { Log.w(TAG, "password field is not EditText"); } else { - // After acquiring the focus, we show software keyboard. - viewToBeFocused.setOnFocusChangeListener(this); - final boolean requestFocusResult = viewToBeFocused.requestFocus(); - Log.i(TAG, String.format("Focus request %s.", - (requestFocusResult ? "successful" : "failed"))); - if (!requestFocusResult) { - viewToBeFocused.setOnFocusChangeListener(null); + if (viewToBeFocused.isFocused()) { + mInputMethodManager.showSoftInput(viewToBeFocused, 0); + } else { + // After acquiring the focus, we show software keyboard. + viewToBeFocused.setOnFocusChangeListener(this); + final boolean requestFocusResult = viewToBeFocused.requestFocus(); + Log.i(TAG, String.format("Focus request %s.", + (requestFocusResult ? "successful" : "failed"))); + if (!requestFocusResult) { + viewToBeFocused.setOnFocusChangeListener(null); + } } } } @@ -131,7 +137,7 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh @Override public Button getForgetButton() { - return mForgetButton; + return null; } @Override @@ -143,16 +149,11 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh public void setSubmitButton(CharSequence text) { mConnectButton.setVisibility(View.VISIBLE); mConnectButton.setText(text); - - // test - mForgetButton.setVisibility(View.GONE); } @Override public void setForgetButton(CharSequence text) { // In XL setup screen, we won't show Forget button for simplifying the UI. - // mForgetButton.setVisibility(View.VISIBLE); - // mForgetButton.setText(text); } @Override @@ -177,12 +178,9 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh Log.d(TAG, "Ignoring setTitle"); } - private static class FocusRunnable implements Runnable { - final InputMethodManager mInputMethodManager; + private class FocusRunnable implements Runnable { final View mViewToBeFocused; - public FocusRunnable(Context context, View viewToBeFocused) { - mInputMethodManager = (InputMethodManager) - context.getSystemService(Context.INPUT_METHOD_SERVICE); + public FocusRunnable(View viewToBeFocused) { mViewToBeFocused = viewToBeFocused; } @@ -191,7 +189,9 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh // mInputMethodManager.focusIn(mViewToBeFocused); final boolean showSoftInputResult = mInputMethodManager.showSoftInput(mViewToBeFocused, 0); - if (!showSoftInputResult) { + if (showSoftInputResult) { + mActivity.setPaddingVisibility(View.GONE); + } else { Log.w(TAG, "Failed to show software keyboard "); } } @@ -201,7 +201,7 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh public void onFocusChange(View view, boolean hasFocus) { view.setOnFocusChangeListener(null); if (hasFocus) { - mHandler.post(new FocusRunnable(mActivity, view)); + mHandler.post(new FocusRunnable(view)); } } }
\ No newline at end of file diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index ffe48a9..ccc40fb 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -567,7 +567,7 @@ public class WifiSettings extends SettingsPreferenceFragment public void onClick(DialogInterface dialogInterface, int button) { if (mInXlSetupWizard) { if (button == WifiDialog.BUTTON_FORGET && mSelectedAccessPoint != null) { - ((WifiSettingsForSetupWizardXL)getActivity()).onForgetButtonPressed(); + forget(); } else if (button == WifiDialog.BUTTON_SUBMIT) { ((WifiSettingsForSetupWizardXL)getActivity()).onConnectButtonPressed(); } diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java index 7fccce0..59d61ab 100644 --- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java +++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java @@ -29,10 +29,10 @@ import android.os.Handler; import android.preference.PreferenceCategory; import android.text.TextUtils; import android.util.Log; -import android.view.View; +import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; +import android.view.View; import android.view.View.OnClickListener; -import android.view.ContextMenu; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; @@ -69,16 +69,31 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis private WifiManager mWifiManager; - private TextView mProgressText; + /** + * Used for resizing a padding above title. Hiden when software keyboard is shown. + */ + private View mTopPadding; + + /** + * Used for resizing a padding inside Config UI. Hiden when software keyboard is shown. + */ + private View mWifiConfigPadding; + + private TextView mTitleView; + /** + * The name of a network currently connecting, or trying to connect. + * This may be empty ("") at first, and updated when configuration is changed. + */ + private CharSequence mNetworkName = ""; + private CharSequence mEditingTitle; + private ProgressBar mProgressBar; private WifiSettings mWifiSettings; - private TextView mStatusText; private Button mAddNetworkButton; private Button mRefreshButton; private Button mSkipOrNextButton; private Button mConnectButton; - private Button mForgetButton; private Button mBackButton; // true when a user already pressed "Connect" button and waiting for connection. @@ -130,14 +145,11 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis } public void setup() { - mProgressText = (TextView)findViewById(R.id.scanning_progress_text); + mTitleView = (TextView)findViewById(R.id.wifi_setup_title); mProgressBar = (ProgressBar)findViewById(R.id.scanning_progress_bar); mProgressBar.setMax(2); - mStatusText = (TextView)findViewById(R.id.wifi_setup_status); - mProgressText.setText(Summary.get(this, DetailedState.SCANNING)); mProgressBar.setIndeterminate(true); - mStatusText.setText(R.string.wifi_setup_status_scanning); mAddNetworkButton = (Button)findViewById(R.id.wifi_setup_add_network); mAddNetworkButton.setOnClickListener(this); @@ -147,11 +159,12 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis mSkipOrNextButton.setOnClickListener(this); mConnectButton = (Button)findViewById(R.id.wifi_setup_connect); mConnectButton.setOnClickListener(this); - mForgetButton = (Button)findViewById(R.id.wifi_setup_forget); - mForgetButton.setOnClickListener(this); mBackButton = (Button)findViewById(R.id.wifi_setup_cancel); mBackButton.setOnClickListener(this); + mTopPadding = findViewById(R.id.top_padding); + mWifiConfigPadding = findViewById(R.id.wifi_config_padding); + // At first, Wifi module doesn't return SCANNING state (it's too early), so we manually // show it. showScanningStatus(); @@ -163,8 +176,8 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis mRefreshButton.setVisibility(View.VISIBLE); mSkipOrNextButton.setVisibility(View.VISIBLE); mConnectButton.setVisibility(View.GONE); - mForgetButton.setVisibility(View.GONE); mBackButton.setVisibility(View.GONE); + setPaddingVisibility(View.VISIBLE, View.GONE); } @Override @@ -188,9 +201,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis } else if (view == mConnectButton) { if (DEBUG) Log.d(TAG, "Connect button pressed"); onConnectButtonPressed(); - } else if (view == mForgetButton) { - if (DEBUG) Log.d(TAG, "Forget button pressed"); - onForgetButtonPressed(); } else if (view == mBackButton) { if (DEBUG) Log.d(TAG, "Back button pressed"); onBackButtonPressed(); @@ -222,7 +232,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis // no visible network on the list. if (mWifiSettings.getAccessPointsCount() == 0) { mProgressBar.setIndeterminate(true); - mProgressText.setText(Summary.get(this, DetailedState.SCANNING)); } else { // Users already connected to a network, or see available networks. mProgressBar.setIndeterminate(false); @@ -234,14 +243,14 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis break; } case CONNECTED: { + hideSoftwareKeyboard(); + // If the device is already connected to a wifi without users' "Connect" request, // this can be false here. We want to treat it as "after connect action". mAfterConnectAction = true; mProgressBar.setIndeterminate(false); mProgressBar.setProgress(2); - mProgressText.setText(Summary.get(this, state)); - mStatusText.setText(R.string.wifi_setup_status_proceed_to_next); mConnectButton.setVisibility(View.GONE); mAddNetworkButton.setVisibility(View.GONE); @@ -250,8 +259,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis mSkipOrNextButton.setVisibility(View.VISIBLE); mSkipOrNextButton.setEnabled(true); mHandler.removeCallbacks(mSkipButtonEnabler); - - mProgressText.setText(Summary.get(this, state)); break; } default: // DISCONNECTED, FAILED @@ -264,31 +271,34 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis mProgressBar.setIndeterminate(false); mProgressBar.setProgress(0); - mProgressText.setText(stateString); - mAddNetworkButton.setEnabled(true); mRefreshButton.setEnabled(true); } private void showConnectingStatus() { + // We save this title and show it when authentication failed. + mEditingTitle = mTitleView.getText(); + showTitleForNetworkEditing(); mProgressBar.setIndeterminate(false); mProgressBar.setProgress(1); - mStatusText.setText(R.string.wifi_setup_status_connecting); - mProgressText.setText(Summary.get(this, DetailedState.CONNECTING)); + setPaddingVisibility(View.VISIBLE); + } + + private void showTitleForNetworkEditing() { + if (TextUtils.isEmpty(mNetworkName) && mWifiConfig != null) { + mNetworkName = mWifiConfig.getController().getConfig().SSID; + } + mTitleView.setText(getString(R.string.wifi_setup_title_editing_network, mNetworkName)); } private void showScanningStatus() { mProgressBar.setIndeterminate(true); ((Button)findViewById(R.id.wifi_setup_add_network)).setEnabled(false); ((Button)findViewById(R.id.wifi_setup_refresh_list)).setEnabled(false); - mProgressText.setText(Summary.get(this, DetailedState.SCANNING)); - mStatusText.setText(R.string.wifi_setup_status_scanning); } private void onAddNetworkButtonPressed() { - // onConfigUiShown() will be called. mWifiSettings.onAddNetworkPressed(); - } /** @@ -318,34 +328,39 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis mWifiConfig = new WifiConfigUiForSetupWizardXL(this, parent, selectedAccessPoint, edit); final View view = mWifiConfig.getView(); if (selectedAccessPoint != null) { - view.findViewById(R.id.wifi_general_info).setVisibility(View.VISIBLE); - ((TextView)view.findViewById(R.id.title)).setText(selectedAccessPoint.getTitle()); - ((TextView)view.findViewById(R.id.summary)).setText(selectedAccessPoint.getSummary()); + mNetworkName = selectedAccessPoint.getTitle().toString(); + mTitleView.setText(getString(R.string.wifi_setup_title_editing_network, mNetworkName)); } else { + mNetworkName = ""; + mTitleView.setText(R.string.wifi_setup_title_add_network); view.findViewById(R.id.wifi_general_info).setVisibility(View.GONE); } if (selectedAccessPoint != null && selectedAccessPoint.security == AccessPoint.SECURITY_NONE) { - mStatusText.setText(R.string.wifi_setup_status_unsecured_network); + // onConnectButtonPressed() will change visibility status. + mConnectButton.performClick(); } else if (selectedAccessPoint != null && selectedAccessPoint.security == AccessPoint.SECURITY_EAP) { - mStatusText.setText(R.string.wifi_setup_status_eap_not_supported); mConnectButton.setVisibility(View.GONE); + + mSkipOrNextButton.setVisibility(View.GONE); + mAddNetworkButton.setVisibility(View.GONE); + mRefreshButton.setVisibility(View.GONE); + mBackButton.setVisibility(View.VISIBLE); } else { - mStatusText.setText(R.string.wifi_setup_status_edit_network); mConnectButton.setVisibility(View.VISIBLE); - } - // WifiConfigController shows Connect button as "Save" when edit==true and a user - // tried to connect the network. - // In SetupWizard, we just show the button as "Connect" instead. - mConnectButton.setText(R.string.wifi_connect); + // WifiConfigController shows Connect button as "Save" when edit==true and a user + // tried to connect the network. + // In SetupWizard, we just show the button as "Connect" instead. + mConnectButton.setText(R.string.wifi_connect); - mAddNetworkButton.setVisibility(View.GONE); - mRefreshButton.setVisibility(View.GONE); - mSkipOrNextButton.setVisibility(View.GONE); - mBackButton.setVisibility(View.VISIBLE); + mSkipOrNextButton.setVisibility(View.GONE); + mAddNetworkButton.setVisibility(View.GONE); + mRefreshButton.setVisibility(View.GONE); + mBackButton.setVisibility(View.VISIBLE); + } } // May be called when user press "connect" button in WifiDialog @@ -388,21 +403,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis mRefreshButton.setVisibility(View.GONE); } - // May be called when user press "forget" button in WifiDialog - /* package */ void onForgetButtonPressed() { - mWifiSettings.forget(); - - refreshAccessPoints(false); - restoreFirstButtonVisibilityState(); - mAddNetworkButton.setEnabled(true); - mRefreshButton.setEnabled(true); - mSkipOrNextButton.setEnabled(true); - - mProgressBar.setIndeterminate(false); - mProgressBar.setProgress(0); - mProgressText.setText(getString(R.string.wifi_setup_not_connected)); - } - private void onBackButtonPressed() { if (mAfterConnectAction) { if (DEBUG) Log.d(TAG, "Back button pressed after connect action."); @@ -421,7 +421,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis } else { // During user's Wifi configuration. mWifiSettings.resumeWifiScan(); - mStatusText.setText(R.string.wifi_setup_status_select_network); restoreFirstButtonVisibilityState(); mAddNetworkButton.setEnabled(true); @@ -470,7 +469,8 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis } /** - * Called when {@link WifiSettings} received {@link WifiManager#SUPPLICANT_CHANGED_ACTION}. + * Called when {@link WifiSettings} received + * {@link WifiManager#SUPPLICANT_STATE_CHANGED_ACTION}. */ /* package */ void onSupplicantStateChanged(Intent intent) { final int errorCode = intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1); @@ -485,11 +485,17 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis */ private void onAuthenticationFailure() { mAfterConnectAction = false; - mStatusText.setText(R.string.wifi_setup_status_edit_network); mSkipOrNextButton.setVisibility(View.GONE); mConnectButton.setVisibility(View.VISIBLE); mConnectButton.setEnabled(true); + if (!TextUtils.isEmpty(mEditingTitle)) { + mTitleView.setText(mEditingTitle); + } else { + Log.w(TAG, "Title during editing/adding a network was empty."); + showTitleForNetworkEditing(); + } + // Restore View status which was tweaked on connection. final View wpsFieldView = findViewById(R.id.wps_fields); if (wpsFieldView != null) { @@ -502,21 +508,36 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis final View passwordView = findViewById(R.id.password); if (passwordView != null) { if (passwordView.isFocused()) { - final InputMethodManager inputMethodManager = (InputMethodManager) - getSystemService(Context.INPUT_METHOD_SERVICE); - inputMethodManager.showSoftInput(passwordView, 0); - } else { - mWifiConfig.requestFocusAndShowKeyboard(R.id.password); + setPaddingVisibility(View.GONE); } + mWifiConfig.requestFocusAndShowKeyboard(R.id.password); } } } final View typeView = findViewById(R.id.type); if (typeView != null) { typeView.setVisibility(mPreviousTypeVisibility); + if (mPreviousTypeVisibility == View.VISIBLE && mWifiConfig != null) { + final View ssidView = findViewById(R.id.ssid); + if (ssidView != null) { + if (ssidView.isFocused()) { + setPaddingVisibility(View.GONE); + } + mWifiConfig.requestFocusAndShowKeyboard(R.id.ssid); + } + } } } + public void setPaddingVisibility(int visibility) { + setPaddingVisibility(visibility, visibility); + } + + private void setPaddingVisibility(int topPaddingVisibility, int configVisibility) { + mTopPadding.setVisibility(topPaddingVisibility); + mWifiConfigPadding.setVisibility(configVisibility); + } + /** * Called when WifiManager is requested to save a network. This method sholud include * WifiManager#saveNetwork() call. |