summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml33
-rw-r--r--res/values/strings.xml6
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java37
-rw-r--r--src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java34
4 files changed, 79 insertions, 31 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 e8a0f67..353cd12 100644
--- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
+++ b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
@@ -27,19 +27,21 @@
android:layout_width="0px"
android:layout_weight=".3"
android:layout_height="fill_parent"
- android:paddingRight="10dip"
+ android:paddingRight="50dip"
android:paddingBottom="10dip">
<TextView android:id="@+id/wifi_setup_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:gravity="center|top"
+ android:layout_alignParentRight="true"
+ android:gravity="right"
android:textSize="48dip"
- android:textColor="#FF30FF30"
+ android:textColor="#FFC5DF28"
android:text="@string/wifi_setup_title"/>
<Button android:id="@+id/wifi_setup_cancel"
- android:layout_width="fill_parent"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
android:textSize="24dip"
android:text="@string/wifi_cancel"
android:visibility="gone" />
@@ -51,15 +53,15 @@
android:layout_weight=".4"
android:layout_height="fill_parent"
android:paddingTop="20dip"
- android:paddingLeft="10dip"
- android:paddingRight="30dip"
+ android:paddingLeft="50dip"
+ android:paddingRight="50dip"
android:paddingBottom="15dip">
<!-- Assume the text size of this text should be same as Preference's
texts. See also preference.xml -->
<TextView android:id="@+id/wifi_setup_status"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:background="#ff113344"
+ android:background="#ff555555"
android:paddingLeft="5dip"
android:paddingTop="5dip"
android:paddingBottom="5dip"
@@ -78,29 +80,28 @@
android:layout_weight=".3"
android:layout_height="fill_parent"
android:paddingTop="22dip"
- android:paddingLeft="30dip"
+ android:paddingLeft="50dip"
android:paddingBottom="10dip">
<TextView android:id="@+id/scanning_progress_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
- android:textSize="24dip"
- android:text="@string/progress_scanning"/>
+ android:textSize="24dip"/>
<ProgressBar android:id="@+id/scanning_progress_bar"
- android:layout_width="100dip"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_below="@id/scanning_progress_text"
style="?android:attr/progressBarStyleHorizontal" />
<Button android:id="@+id/wifi_setup_connect"
- android:layout_width="fill_parent"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
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="fill_parent"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textSize="24dip"
@@ -108,7 +109,7 @@
android:visibility="gone" />
<Button android:id="@+id/wifi_setup_skip_or_next"
- android:layout_width="fill_parent"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_alignParentBottom="true"
@@ -116,14 +117,14 @@
android:text="@string/wifi_setup_skip" />
<Button android:id="@+id/wifi_setup_refresh_list"
- android:layout_width="fill_parent"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_above="@id/wifi_setup_skip_or_next"
android:textSize="24dip"
android:text="@string/wifi_setup_refresh_list" />
<Button android:id="@+id/wifi_setup_add_network"
- android:layout_width="fill_parent"
+ android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_above="@id/wifi_setup_refresh_list"
android:textSize="24dip"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 28a72e8..351cb13 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2702,8 +2702,12 @@ found in the list of installed applications.</string>
<string name="wifi_setup_status_select_network">Touch to select network</string>
<!-- Message shown above available networks when a user clicked one of available
networks and the UI is showing one possible existing network.
- Used in Wifi Setup For Setup Wizard with XL screen. -->
+ Used in Wifi Setup. -->
<string name="wifi_setup_status_existing_network">Connect to existing network</string>
+ <!-- Message shown above available networks when a user clicked one of available
+ networks and the UI is prompting the user to edit the network configuration
+ if needed. Used in Wifi Setup with XL screen. [CHAR LIMIT=35] -->
+ <string name="wifi_setup_status_edit_network">Enter network configuration</string>
<!-- The message shown above available networks when a user clicked "Add network"
button. Used in Wifi Setup For Setup Wizard with XL screen. -->
<string name="wifi_setup_status_new_network">Connect to new network</string>
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 05aecaf..a0b2132 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -87,6 +87,12 @@ public class WifiSettings extends SettingsPreferenceFragment
// Note: this is only effective in Setup Wizard with XL screen size.
private static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
+ // In SetupWizard XL, We limit the number of showable access points so that the
+ // ListView won't become larger than the screen.
+ //
+ // This constant doesn't affect other contexts other than SetupWizard XL.
+ private static int MAX_MENU_COUNT_IN_XL = 7;
+
private final IntentFilter mFilter;
private final BroadcastReceiver mReceiver;
private final Scanner mScanner;
@@ -113,6 +119,10 @@ public class WifiSettings extends SettingsPreferenceFragment
private WifiConfigPreference mConfigPreference;
private WifiDialog mDialog;
+ // Used only in SetupWizard XL, which remembers the network a user selected and
+ // refrain other available networks when trying to connect it.
+ private AccessPoint mConnectingAccessPoint;
+
private boolean mRefrainListUpdate;
public WifiSettings() {
@@ -370,7 +380,10 @@ public class WifiSettings extends SettingsPreferenceFragment
mConfigPreference = new WifiConfigPreference(this, this, accessPoint, edit);
toggleButtonsVisibility(false);
-
+ final Activity activity = getActivity();
+ if (activity instanceof WifiSettingsForSetupWizardXL) {
+ ((WifiSettingsForSetupWizardXL)activity).onWifiConfigPreferenceAttached(edit);
+ }
updateAccessPoints();
mScanner.pause();
}
@@ -422,8 +435,10 @@ public class WifiSettings extends SettingsPreferenceFragment
}
}
- if (mConfigPreference != null) {
- mAccessPoints.removeAll();
+ mAccessPoints.removeAll();
+ if (mConnectingAccessPoint != null) {
+ mAccessPoints.addPreference(mConnectingAccessPoint);
+ } else if (mConfigPreference != null) {
final AccessPoint parent = mConfigPreference.getAccessPoint();
if (parent != null) {
parent.setSelectable(false);
@@ -433,9 +448,14 @@ public class WifiSettings extends SettingsPreferenceFragment
} else {
// AccessPoints are automatically sorted with TreeSet.
final Collection<AccessPoint> accessPoints = constructAccessPoints();
- mAccessPoints.removeAll();
+
+ int count = MAX_MENU_COUNT_IN_XL;
for (AccessPoint accessPoint : accessPoints) {
mAccessPoints.addPreference(accessPoint);
+ count--;
+ if (count <= 0) {
+ break;
+ }
}
}
}
@@ -520,7 +540,8 @@ public class WifiSettings extends SettingsPreferenceFragment
// Maybe there's a WifiConfigPreference
Preference preference = mAccessPoints.getPreference(i);
if (preference instanceof AccessPoint) {
- ((AccessPoint) preference).update(mLastInfo, mLastState);
+ final AccessPoint accessPoint = (AccessPoint) preference;
+ accessPoint.update(mLastInfo, mLastState);
}
}
@@ -634,6 +655,11 @@ public class WifiSettings extends SettingsPreferenceFragment
break;
}
+ if (mInXlSetupWizard && mConfigPreference != null) {
+ mConnectingAccessPoint = mSelectedAccessPoint;
+ mConnectingAccessPoint.setSelectable(false);
+ }
+
detachConfigPreference();
}
@@ -656,6 +682,7 @@ public class WifiSettings extends SettingsPreferenceFragment
}
mConfigPreference = null;
+ mConnectingAccessPoint = null;
mAccessPoints.removeAll();
final Activity activity = getActivity();
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
index ef827f6..5dfb36a 100644
--- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
@@ -56,6 +56,13 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
private WifiSettings mWifiSettings;
private TextView mStatusText;
+ // This count reduces every time when there's a notification about WiFi status change.
+ // During the term this is >0, The system shows the message "connecting", regardless
+ // of the actual WiFi status. After this count's becoming 0, the status message correctly
+ // reflects what WiFi Picker told it. This is a tweak for letting users not confused
+ // with instable WiFi state during the first scan.
+ private int mIgnoringWifiNotificationCount = 5;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -70,6 +77,7 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
public void setup() {
mProgressText = (TextView)findViewById(R.id.scanning_progress_text);
+ mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
mProgressBar = (ProgressBar)findViewById(R.id.scanning_progress_bar);
mProgressBar.setMax(2);
mProgressBar.setIndeterminate(true);
@@ -104,11 +112,13 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mWifiSettings.forget();
break;
case R.id.wifi_setup_cancel:
+ mStatusText.setText(R.string.wifi_setup_status_select_network);
mWifiSettings.detachConfigPreference();
break;
}
}
+ // Called from WifiSettings
public void updateConnectionState(DetailedState originalState) {
final DetailedState state = stateMap.get(originalState);
switch (state) {
@@ -136,23 +146,29 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mProgressBar.setProgress(2);
mStatusText.setText(R.string.wifi_setup_status_connected);
mProgressText.setText(Summary.get(this, state));
+ setResult(Activity.RESULT_OK);
+ finish();
break;
}
default: // 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));
+ if (mWifiSettings.getAccessPointsCount() == 0 &&
+ mIgnoringWifiNotificationCount > 0) {
+ mIgnoringWifiNotificationCount--;
+ mProgressBar.setIndeterminate(true);
+ mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+ return;
+ } else {
+ 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;
}
}
public void onWifiConfigPreferenceAttached(boolean isNewNetwork) {
- if (isNewNetwork) {
- mStatusText.setText(R.string.wifi_setup_status_new_network);
- } else {
- mStatusText.setText(R.string.wifi_setup_status_existing_network);
- }
+ mStatusText.setText(R.string.wifi_setup_status_edit_network);
}
public void onForget() {