Fix misc problems happening in SetupWizard XL

Change-Id: I6ba0813f36625de3d86543953972869657be50be
This commit is contained in:
Daisuke Miyakawa
2010-09-28 16:02:11 -07:00
parent 25af150c98
commit 5d3c5cb9d0
4 changed files with 42 additions and 9 deletions

View File

@@ -16,6 +16,8 @@
package com.android.settings.wifi;
import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
import com.android.settings.ProgressCategoryBase;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
@@ -33,7 +35,6 @@ import android.net.wifi.ScanResult;
import android.net.wifi.SupplicantState;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration.KeyMgmt;
import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
@@ -45,6 +46,7 @@ import android.preference.PreferenceScreen;
import android.provider.Settings.Secure;
import android.security.Credentials;
import android.security.KeyStore;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
@@ -547,6 +549,10 @@ public class WifiSettings extends SettingsPreferenceFragment
final Activity activity = getActivity();
if (activity instanceof WifiSettingsForSetupWizardXL) {
if (mLastState == DetailedState.FAILED) {
// We clean up the status and let users select another network if they want.
refreshAccessPoints();
}
((WifiSettingsForSetupWizardXL)activity).updateConnectionState(mLastState);
}
}
@@ -625,6 +631,7 @@ public class WifiSettings extends SettingsPreferenceFragment
final WifiConfigUiBase uiBase = (mDialog != null ? mDialog : mConfigPreference);
final WifiConfigController configController = uiBase.getController();
boolean successful = true;
switch(configController.chosenNetworkSetupMethod()) {
case WifiConfigController.WPS_PBC:
mWifiManager.startWpsPbc(mSelectedAccessPoint.bssid);
@@ -638,8 +645,11 @@ public class WifiSettings extends SettingsPreferenceFragment
if (config == null) {
if (mSelectedAccessPoint != null
&& !requireKeyStore(mSelectedAccessPoint.getConfig())) {
&& !requireKeyStore(mSelectedAccessPoint.getConfig())
&& mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) {
mWifiManager.connectNetwork(mSelectedAccessPoint.networkId);
} else {
successful = false;
}
} else if (config.networkId != INVALID_NETWORK_ID) {
if (mSelectedAccessPoint != null) {
@@ -655,7 +665,8 @@ public class WifiSettings extends SettingsPreferenceFragment
break;
}
if (mInXlSetupWizard && mConfigPreference != null) {
if (mInXlSetupWizard && successful && mConfigPreference != null) {
// Now connecting to the AccessPoint.
mConnectingAccessPoint = mSelectedAccessPoint;
mConnectingAccessPoint.setSelectable(false);
}
@@ -685,9 +696,8 @@ public class WifiSettings extends SettingsPreferenceFragment
mConnectingAccessPoint = null;
mAccessPoints.removeAll();
final Activity activity = getActivity();
if (activity instanceof WifiSettingsForSetupWizardXL) {
((WifiSettingsForSetupWizardXL)activity).onRefreshAccessPoints();
if (mInXlSetupWizard) {
((WifiSettingsForSetupWizardXL)getActivity()).onRefreshAccessPoints();
}
}