OSDN Git Service

Show "connecting" just after user's connect action
authorDaisuke Miyakawa <dmiyakawa@google.com>
Thu, 4 Nov 2010 03:04:32 +0000 (20:04 -0700)
committerDaisuke Miyakawa <dmiyakawa@google.com>
Thu, 4 Nov 2010 03:12:00 +0000 (20:12 -0700)
Bug: 3164013
Change-Id: Ide367d51bcd7fcd97403c92ee049a1bb2633e272

res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java

index 2e96da5..a6a8e8a 100644 (file)
@@ -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"
          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"
              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" />
         <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" />
         <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" />
                 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"
index 0801504..fde5d90 100644 (file)
@@ -74,6 +74,8 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
     // 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 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
             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 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
             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 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
             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 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
         }
     }
 
+    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);