diff options
21 files changed, 518 insertions, 303 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index bc58a7e..0f2390c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -110,7 +110,6 @@ <intent-filter> <action android:name="android.intent.action.MAIN" /> <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.VOICE_LAUNCH" /> <category android:name="com.android.settings.SHORTCUT" /> @@ -125,6 +124,16 @@ android:value="com.android.settings.Settings$WirelessSettingsActivity" /> </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" android:theme="@android:style/Theme.Holo.NoActionBar" android:clearTaskOnLaunch="true" diff --git a/res/layout-xlarge/date_time_settings_setupwizard.xml b/res/layout-xlarge/date_time_settings_setupwizard.xml index 600cdbd..483b66a 100644 --- a/res/layout-xlarge/date_time_settings_setupwizard.xml +++ b/res/layout-xlarge/date_time_settings_setupwizard.xml @@ -158,10 +158,8 @@ <Button android:id="@+id/next_button" - android:layout_width="208dip" - android:layout_height="48dip" + style="@style/setup_wizard_button" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" - android:text="@string/next_label" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:text="@string/next_label" /> </RelativeLayout> 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 d3af1f8..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,74 +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" - android:layout_width="208dip" - android:layout_height="48dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_forget" - android:textAppearance="?android:attr/textAppearanceMedium" - android:visibility="gone" /> - - <Button android:id="@+id/wifi_setup_connect" - android:layout_width="208dip" - android:layout_height="48dip" - android:layout_marginTop="96dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_connect" - android:textAppearance="?android:attr/textAppearanceMedium" - android:enabled="false" - android:visibility="gone" /> - - <Button android:id="@+id/wifi_setup_add_network" - android:layout_width="208dip" - android:layout_height="48dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_add_network" - android:textAppearance="?android:attr/textAppearanceMedium" - android:enabled="false" /> - - <Button android:id="@+id/wifi_setup_refresh_list" - android:layout_width="208dip" - android:layout_height="48dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_refresh_list" - android:textAppearance="?android:attr/textAppearanceMedium" - android:enabled="false" /> - - <Button android:id="@+id/wifi_setup_skip_or_next" - android:layout_width="208dip" - android:layout_height="48dip" - android:layout_marginTop="96dip" - android:layout_marginLeft="16dip" - android:text="@string/wifi_setup_skip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:enabled="false" /> - </LinearLayout> - - <!-- This misleading name is for keeping consistency between non-XL layouts --> - <Button android:id="@+id/wifi_setup_cancel" - android:layout_width="208dip" - android:layout_height="48dip" - android:textAppearance="?android:attr/textAppearanceMedium" - 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_alignParentBottom="true"> + + <Button + android:id="@+id/wifi_setup_add_network" + style="@style/setup_wizard_button" + 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/installed_app_details.xml b/res/layout/installed_app_details.xml index fff1975..0b68d47 100644 --- a/res/layout/installed_app_details.xml +++ b/res/layout/installed_app_details.xml @@ -132,6 +132,7 @@ android:maxLines="1" /> </LinearLayout> + <LinearLayout android:id="@+id/info_size" android:layout_width="match_parent" @@ -169,6 +170,44 @@ android:maxLines="1" /> </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:baselineAligned="true" + android:paddingTop="-1dip"> + <TextView + android:id="@+id/external_size_prefix" + android:text="@string/external_size_label" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:maxLines="1" + android:paddingTop="6dip" + android:paddingLeft="6dip"/> + <ImageView + android:id="@+id/info_size_dots" + android:src="@drawable/dotted_line_480px" + android:layout_width="0dip" + android:layout_weight="1" + android:layout_height="1px" + android:layout_gravity="bottom" + android:layout_marginLeft="1dip" + android:layout_marginRight="1dip" + android:layout_marginBottom="4dip" + android:scaleType="center" /> + <TextView + android:id="@+id/external_size_text" + android:textAppearance="?android:attr/textAppearanceMedium" + android:paddingTop="6dip" + android:paddingRight="6dip" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:maxLines="1" /> + + </LinearLayout> + <!-- Clear data and install location buttons --> <include layout="@layout/two_buttons_panel" 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-xlarge/styles.xml b/res/values-xlarge/styles.xml index 5e3fead..9b125ad 100644 --- a/res/values-xlarge/styles.xml +++ b/res/values-xlarge/styles.xml @@ -50,4 +50,11 @@ <item name="android:orientation">vertical</item> </style> -</resources>
\ No newline at end of file + <style name="setup_wizard_button"> + <item name="android:layout_width">wrap_content</item> + <item name="android:minWidth">208dip</item> + <item name="android:layout_height">48dip</item> + <item name="android:textAppearance">?android:attr/textAppearanceMedium</item> + </style> + +</resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index be3d888..0c51a22 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1969,6 +1969,10 @@ <string name="application_size_label">Application</string> <!-- Manage applications, individual application info screen, label under Storage heading. The amount of sapce taken up by the app's data (for example, downloaded emails or something like that) --> <string name="data_size_label">Data</string> + <!-- Manage applications, individual application info screen, label under Storage heading. The amount of space taken up by the app's data on USB storage [CHARSIZE=40] --> + <string name="external_size_label" product="nosdcard">USB storage</string> + <!-- Manage applications, individual application info screen, label under Storage heading. The amount of space taken up by the app's data on the SD card [CHARSIZE=40] --> + <string name="external_size_label" product="default">SD card</string> <!-- Manage applications, individual application info screen, button label under Storage heading. Button to remove the application from the system. --> <string name="uninstall_text">Uninstall</string> <!-- [CHAR LIMIT=25] Manage applications, individual application info screen, button label under Storage heading. Button to disable an existing application. --> @@ -2937,8 +2941,27 @@ 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 + the device successfully connected to a network the user specified. + The argument should be the name of the network. + [CHAR LIMIT=50] --> + <string name="wifi_setup_title_connected_network">Connected 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/res/values/styles.xml b/res/values/styles.xml index 969742f..c361fa9 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -109,4 +109,9 @@ <item name="android:layout_height">wrap_content</item> <item name="android:orientation">vertical</item> </style> + + <style name="setup_wizard_button"> + <item name="android:layout_width">wrap_content</item> + <item name="android:layout_height">wrap_content</item> + </style> </resources> 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/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 1bebebb..018dfd2 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -197,7 +197,7 @@ public class ChooseLockPassword extends PreferenceActivity { int currentType = mPasswordEntry.getInputType(); mPasswordEntry.setInputType(mIsAlphaMode ? currentType - : (currentType | InputType.TYPE_CLASS_NUMBER)); + : (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD)); Intent intent = getActivity().getIntent(); final boolean confirmCredentials = intent.getBooleanExtra("confirm_credentials", true); 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 @@ import java.util.List; /** * 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 @@ public class SettingsPreferenceFragment extends PreferenceFragment } 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/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java index 298f1b6..aef8b8a 100644 --- a/src/com/android/settings/accounts/AccountSyncSettings.java +++ b/src/com/android/settings/accounts/AccountSyncSettings.java @@ -55,6 +55,7 @@ import android.widget.TextView; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -212,7 +213,6 @@ public class AccountSyncSettings extends AccountPreferenceBase { String title = getString(R.string.sync_item_title, providerLabel); item.setTitle(title); item.setKey(authority); - getPreferenceScreen().addPreference(item); mCheckBoxes.add(item); } @@ -472,6 +472,11 @@ public class AccountSyncSettings extends AccountPreferenceBase { } } } + + Collections.sort(mCheckBoxes); + for (int i = 0, n = mCheckBoxes.size(); i < n; i++) { + getPreferenceScreen().addPreference(mCheckBoxes.get(i)); + } } /** diff --git a/src/com/android/settings/applications/ApplicationsState.java b/src/com/android/settings/applications/ApplicationsState.java index 6e9f2a2..6de8c7f 100644 --- a/src/com/android/settings/applications/ApplicationsState.java +++ b/src/com/android/settings/applications/ApplicationsState.java @@ -71,6 +71,7 @@ public class ApplicationsState { long cacheSize; long codeSize; long dataSize; + long externalSize; } public static class AppEntry extends SizeInfo { @@ -626,9 +627,16 @@ public class ApplicationsState { // -------------------------------------------------------------- - private long getTotalSize(PackageStats ps) { + private long getTotalInternalSize(PackageStats ps) { if (ps != null) { - return ps.codeSize+ps.dataSize; + return ps.codeSize + ps.dataSize; + } + return SIZE_INVALID; + } + + private long getTotalExternalSize(PackageStats ps) { + if (ps != null) { + return ps.externalDataSize + ps.externalMediaSize + ps.externalCacheSize; } return SIZE_INVALID; } @@ -660,15 +668,18 @@ public class ApplicationsState { synchronized (entry) { entry.sizeStale = false; entry.sizeLoadStart = 0; - long newSize = getTotalSize(stats); + long externalSize = getTotalExternalSize(stats); + long newSize = externalSize + getTotalInternalSize(stats); if (entry.size != newSize || entry.cacheSize != stats.cacheSize || entry.codeSize != stats.codeSize || - entry.dataSize != stats.dataSize) { + entry.dataSize != stats.dataSize || + entry.externalSize != externalSize) { entry.size = newSize; entry.cacheSize = stats.cacheSize; entry.codeSize = stats.codeSize; entry.dataSize = stats.dataSize; + entry.externalSize = externalSize; entry.sizeStr = getSizeStr(entry.size); if (DEBUG) Log.i(TAG, "Set size of " + entry.label + " " + entry + ": " + entry.sizeStr); diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index de897eb..06d97fc 100644 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -93,6 +93,7 @@ public class InstalledAppDetails extends Fragment private TextView mTotalSize; private TextView mAppSize; private TextView mDataSize; + private TextView mExternalSize; private ClearUserDataObserver mClearDataObserver; // Views related to cache info private TextView mCacheSize; @@ -107,6 +108,7 @@ public class InstalledAppDetails extends Fragment private boolean mHaveSizes = false; private long mLastCodeSize = -1; private long mLastDataSize = -1; + private long mLastExternalSize = -1; private long mLastCacheSize = -1; private long mLastTotalSize = -1; @@ -317,6 +319,7 @@ public class InstalledAppDetails extends Fragment mTotalSize = (TextView)view.findViewById(R.id.total_size_text); mAppSize = (TextView)view.findViewById(R.id.application_size_text); mDataSize = (TextView)view.findViewById(R.id.data_size_text); + mExternalSize = (TextView)view.findViewById(R.id.external_size_text); // Get Control button panel View btnPanel = view.findViewById(R.id.control_buttons_panel); @@ -504,6 +507,10 @@ public class InstalledAppDetails extends Fragment mLastDataSize = mAppEntry.dataSize; mDataSize.setText(getSizeStr(mAppEntry.dataSize)); } + if (mLastExternalSize != mAppEntry.externalSize) { + mLastExternalSize = mAppEntry.externalSize; + mExternalSize.setText(getSizeStr(mAppEntry.externalSize)); + } if (mLastCacheSize != mAppEntry.cacheSize) { mLastCacheSize = mAppEntry.cacheSize; mCacheSize.setText(getSizeStr(mAppEntry.cacheSize)); diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java index 0587619..960d37e 100644 --- a/src/com/android/settings/vpn/VpnSettings.java +++ b/src/com/android/settings/vpn/VpnSettings.java @@ -190,30 +190,38 @@ public class VpnSettings extends SettingsPreferenceFragment // for long-press gesture on a profile preference registerForContextMenu(getListView()); - // listen to vpn connectivity event - mVpnManager.registerConnectivityReceiver(mConnectivityReceiver); retrieveVpnListFromStorage(); - checkVpnConnectionStatusInBackground(); restoreInstanceState(savedInstanceState); } @Override + public void onPause() { + // ignore vpn connectivity event + mVpnManager.unregisterConnectivityReceiver(mConnectivityReceiver); + super.onPause(); + } + + @Override public void onResume() { super.onResume(); if (DEBUG) Log.d(TAG, "onResume"); + + // listen to vpn connectivity event + mVpnManager.registerConnectivityReceiver(mConnectivityReceiver); + if ((mUnlockAction != null) && isKeyStoreUnlocked()) { Runnable action = mUnlockAction; mUnlockAction = null; getActivity().runOnUiThread(action); } + checkVpnConnectionStatusInBackground(); } @Override public void onDestroyView() { unregisterForContextMenu(getListView()); - mVpnManager.unregisterConnectivityReceiver(mConnectivityReceiver); if ((mShowingDialog != null) && mShowingDialog.isShowing()) { mShowingDialog.dismiss(); } 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/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 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..cb33d3b 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(); @@ -159,12 +172,13 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis } private void restoreFirstButtonVisibilityState() { + showDefaultTitle(); mAddNetworkButton.setVisibility(View.VISIBLE); 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 +202,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 +233,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,15 +244,16 @@ 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); + showConnectedTitle(); mConnectButton.setVisibility(View.GONE); mAddNetworkButton.setVisibility(View.GONE); mRefreshButton.setVisibility(View.GONE); @@ -250,8 +261,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 +273,52 @@ 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(); + showConnectingTitle(); 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 showDefaultTitle() { + mTitleView.setText(getString(R.string.wifi_setup_title)); + } + + private void showEditingTitle() { + if (TextUtils.isEmpty(mNetworkName) && mWifiConfig != null) { + mNetworkName = mWifiConfig.getController().getConfig().SSID; + } + mTitleView.setText(getString(R.string.wifi_setup_title_editing_network, mNetworkName)); + } + + private void showConnectingTitle() { + if (TextUtils.isEmpty(mNetworkName) && mWifiConfig != null) { + mNetworkName = mWifiConfig.getController().getConfig().SSID; + } + mTitleView.setText(getString(R.string.wifi_setup_title_connecting_network, mNetworkName)); + } + + private void showConnectedTitle() { + if (TextUtils.isEmpty(mNetworkName) && mWifiConfig != null) { + mNetworkName = mWifiConfig.getController().getConfig().SSID; + } + mTitleView.setText(getString(R.string.wifi_setup_title_connected_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 +348,41 @@ 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); + + showEditingTitle(); + 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); + showEditingTitle(); + 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 +425,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 +443,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 +491,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 +507,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."); + showEditingTitle(); + } + // Restore View status which was tweaked on connection. final View wpsFieldView = findViewById(R.id.wps_fields); if (wpsFieldView != null) { @@ -502,21 +530,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. |