SetupWizard improvement: let users see "scanning"
Current UI shows nothing when there's no connection available, even when
the device is finding some. So user cannot know whether the static
"Not connected" screen means: the device is finding right now, or
actually no network is available.
Change-Id: Ia8ea1c66956e8de819f6a98362bcc9086bda172c
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 42c076b..c530978 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -103,7 +103,8 @@
android:theme="@android:style/Theme.NoTitleBar"
android:clearTaskOnLaunch="true"
android:screenOrientation="landscape"
- android:exported="true" />
+ android:exported="true"
+ android:theme="@android:style/Theme.Holo.NoTitleBar" />
<activity android:name=".wifi.AdvancedSettings"
android:label="@string/wifi_ip_settings_titlebar"
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index acb9ad3..905f2a3 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -667,4 +667,12 @@
mSelectedAccessPoint = null;
showConfigUi(null, true);
}
+
+ /* package */ int getAccessPointsCount() {
+ if (mAccessPoints != null) {
+ return mAccessPoints.getPreferenceCount();
+ } else {
+ return 0;
+ }
+ }
}
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
index 2d26645..ef827f6 100644
--- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
@@ -40,7 +40,7 @@
static {
stateMap.put(DetailedState.IDLE, DetailedState.DISCONNECTED);
- stateMap.put(DetailedState.SCANNING, DetailedState.DISCONNECTED);
+ stateMap.put(DetailedState.SCANNING, DetailedState.SCANNING);
stateMap.put(DetailedState.CONNECTING, DetailedState.CONNECTING);
stateMap.put(DetailedState.AUTHENTICATING, DetailedState.CONNECTING);
stateMap.put(DetailedState.OBTAINING_IPADDR, DetailedState.CONNECTING);
@@ -111,28 +111,40 @@
public void updateConnectionState(DetailedState originalState) {
final DetailedState state = stateMap.get(originalState);
- final String message;
- mProgressBar.setIndeterminate(false);
switch (state) {
+ case SCANNING: {
+ // Let users know the device is working correctly though currently there's
+ // no visible network on the list.
+ if (mWifiSettings.getAccessPointsCount() == 0) {
+ mProgressBar.setIndeterminate(true);
+ mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+ } else {
+ // Users already already connected to a network, or see available networks.
+ mProgressBar.setIndeterminate(false);
+ }
+ break;
+ }
case CONNECTING: {
- message = Summary.get(this, state);
+ mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(1);
mStatusText.setText(R.string.wifi_setup_status_connecting);
+ mProgressText.setText(Summary.get(this, state));
break;
}
case CONNECTED: {
- message = Summary.get(this, state);
+ mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(2);
mStatusText.setText(R.string.wifi_setup_status_connected);
+ mProgressText.setText(Summary.get(this, state));
break;
}
default: // Not connected.
- message = getString(R.string.wifi_setup_not_connected);
+ mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(0);
mStatusText.setText(R.string.wifi_setup_status_select_network);
+ mProgressText.setText(getString(R.string.wifi_setup_not_connected));
break;
}
- mProgressText.setText(message);
}
public void onWifiConfigPreferenceAttached(boolean isNewNetwork) {