Show "connecting" just after user's connect action
Bug: 3164013
Change-Id: Ide367d51bcd7fcd97403c92ee049a1bb2633e272
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 2e96da5..a6a8e8a 100644
--- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
+++ b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
@@ -26,7 +26,7 @@
<TextView
android:id="@+id/wifi_setup_title"
- android:layout_width="fill_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
@@ -39,13 +39,13 @@
android:id="@+id/scanning_progress_bar"
android:layout_width="100dip"
android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
android:layout_above="@+id/scanning_progress_text"
+ android:layout_alignParentRight="true"
style="?android:attr/progressBarStyleHorizontal" />
<TextView
android:id="@+id/scanning_progress_text"
- android:layout_width="fill_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_above="@+id/top_divider"
@@ -85,27 +85,23 @@
android:layout_height="wrap_content" />
</FrameLayout>
-
- <RelativeLayout
+ <LinearLayout
android:id="@+id/right_buttons"
- android:layout_width="300dip"
- android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true">
<Button android:id="@+id/wifi_setup_connect"
android:layout_width="260dip"
android:layout_height="60dip"
- android:layout_alignParentRight="true"
- android:layout_alignParentBottom="true"
android:textSize="24dip"
android:text="@string/wifi_connect"
android:visibility="gone" />
<Button android:id="@+id/wifi_setup_forget"
android:layout_width="260dip"
android:layout_height="60dip"
- android:layout_alignParentRight="true"
- android:layout_alignParentBottom="true"
android:textSize="24dip"
android:text="@string/wifi_forget"
android:visibility="gone" />
@@ -113,8 +109,6 @@
<Button android:id="@+id/wifi_setup_add_network"
android:layout_width="260dip"
android:layout_height="60dip"
- android:layout_above="@+id/wifi_setup_refresh_list"
- android:layout_alignParentRight="true"
android:textSize="24dip"
android:text="@string/wifi_setup_add_network"
android:enabled="false" />
@@ -122,8 +116,6 @@
<Button android:id="@+id/wifi_setup_refresh_list"
android:layout_width="260dip"
android:layout_height="60dip"
- android:layout_above="@+id/wifi_setup_skip_or_next"
- android:layout_alignParentRight="true"
android:textSize="24dip"
android:text="@string/wifi_setup_refresh_list"
android:enabled="false" />
@@ -132,12 +124,10 @@
android:layout_width="260dip"
android:layout_height="60dip"
android:layout_marginTop="30dip"
- android:layout_alignParentRight="true"
- android:layout_alignParentBottom="true"
android:textSize="24dip"
android:text="@string/wifi_setup_skip"
android:enabled="false" />
- </RelativeLayout>
+ </LinearLayout>
<Button android:id="@+id/wifi_setup_detail"
android:layout_width="260dip"
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
index 0801504..fde5d90 100644
--- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
@@ -74,6 +74,8 @@
// This is a tweak for letting users not confused with WiFi state during a first first steps.
private int mIgnoringWifiNotificationCount = 5;
+ private boolean mShowingConnectingMessageManually = false;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -127,6 +129,14 @@
break;
case R.id.wifi_setup_connect:
mWifiSettings.submit();
+
+ // updateConnectionState() isn't called soon after the user's "connect" action,
+ // and the user still sees "not connected" message for a while, which looks strange.
+ // We instead manually show "connecting" message before the system gets actual
+ // "connecting" message from Wi-Fi module.
+ showConnectingStatus();
+ mShowingConnectingMessageManually = true;
+ mIgnoringWifiNotificationCount = 2;
break;
case R.id.wifi_setup_forget:
mWifiSettings.forget();
@@ -167,10 +177,8 @@
break;
}
case CONNECTING: {
- mProgressBar.setIndeterminate(false);
- mProgressBar.setProgress(1);
- mStatusText.setText(R.string.wifi_setup_status_connecting);
- mProgressText.setText(Summary.get(this, state));
+ mShowingConnectingMessageManually = false;
+ showConnectingStatus();
break;
}
case CONNECTED: {
@@ -200,12 +208,15 @@
break;
}
default: // Not connected.
- if (mWifiSettings.getAccessPointsCount() == 0 &&
- mIgnoringWifiNotificationCount > 0) {
+ if (mWifiSettings.getAccessPointsCount() == 0 && mIgnoringWifiNotificationCount > 0) {
mIgnoringWifiNotificationCount--;
mProgressBar.setIndeterminate(true);
mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+ } else if (mShowingConnectingMessageManually && mIgnoringWifiNotificationCount > 0) {
+ mIgnoringWifiNotificationCount--;
+ showConnectingStatus();
} else {
+ mShowingConnectingMessageManually = false;
mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(0);
mStatusText.setText(R.string.wifi_setup_status_select_network);
@@ -217,6 +228,13 @@
}
}
+ private void showConnectingStatus() {
+ mProgressBar.setIndeterminate(false);
+ mProgressBar.setProgress(1);
+ mStatusText.setText(R.string.wifi_setup_status_connecting);
+ mProgressText.setText(Summary.get(this, DetailedState.CONNECTING));
+ }
+
private void enableButtons() {
((Button)findViewById(R.id.wifi_setup_refresh_list)).setEnabled(true);
((Button)findViewById(R.id.wifi_setup_add_network)).setEnabled(true);