Use WpsConfiguration for new API
Change-Id: I4c1544178bcb29e751db56edb781faf9145cdf86
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index d1c89dd..1a882d4 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -30,6 +30,9 @@
import android.net.wifi.WifiConfiguration.IpAssignment;
import android.net.wifi.WifiConfiguration.AuthAlgorithm;
import android.net.wifi.WifiConfiguration.KeyMgmt;
+import android.net.wifi.WpsConfiguration;
+import android.net.wifi.WpsConfiguration.Setup;
+
import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
import android.net.wifi.WifiConfiguration.ProxySettings;
import android.net.wifi.WifiInfo;
@@ -114,6 +117,10 @@
private TextView mProxyPortView;
private TextView mProxyExclusionListView;
+ private IpAssignment mIpAssignment;
+ private ProxySettings mProxySettings;
+ private LinkProperties mLinkProperties = new LinkProperties();
+
static boolean requireKeyStore(WifiConfiguration config) {
if (config == null) {
return false;
@@ -331,28 +338,37 @@
return null;
}
- config.ipAssignment = (mIpSettingsSpinner != null &&
+ validateAndFetchIpAndProxyFields();
+
+ config.proxySettings = mProxySettings;
+ config.ipAssignment = mIpAssignment;
+ config.linkProperties = new LinkProperties(mLinkProperties);
+
+ return config;
+ }
+
+ private void validateAndFetchIpAndProxyFields() {
+ mLinkProperties.clear();
+ mIpAssignment = (mIpSettingsSpinner != null &&
mIpSettingsSpinner.getSelectedItemPosition() == STATIC_IP) ?
IpAssignment.STATIC : IpAssignment.DHCP;
- if (config.ipAssignment == IpAssignment.STATIC) {
+ if (mIpAssignment == IpAssignment.STATIC) {
//TODO: A better way to do this is to not dismiss the
//dialog as long as one of the fields is invalid
- LinkProperties linkProperties = new LinkProperties();
- int result = validateIpConfigFields(linkProperties);
- if (result == 0) {
- config.linkProperties = linkProperties;
- } else {
+ int result = validateIpConfigFields(mLinkProperties);
+ if (result != 0) {
+ mLinkProperties.clear();
Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
- config.ipAssignment = IpAssignment.UNASSIGNED;
+ mIpAssignment = IpAssignment.UNASSIGNED;
}
}
- config.proxySettings = (mProxySettingsSpinner != null &&
+ mProxySettings = (mProxySettingsSpinner != null &&
mProxySettingsSpinner.getSelectedItemPosition() == PROXY_STATIC) ?
ProxySettings.STATIC : ProxySettings.NONE;
- if (config.proxySettings == ProxySettings.STATIC) {
+ if (mProxySettings == ProxySettings.STATIC) {
String host = mProxyHostView.getText().toString();
String portStr = mProxyPortView.getText().toString();
String exclusionList = mProxyExclusionListView.getText().toString();
@@ -366,14 +382,12 @@
}
if (result == 0) {
ProxyProperties proxyProperties= new ProxyProperties(host, port, exclusionList);
- config.linkProperties.setHttpProxy(proxyProperties);
+ mLinkProperties.setHttpProxy(proxyProperties);
} else {
Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
- config.proxySettings = ProxySettings.UNASSIGNED;
+ mProxySettings = ProxySettings.UNASSIGNED;
}
}
-
- return config;
}
private int validateIpConfigFields(LinkProperties linkProperties) {
@@ -428,13 +442,32 @@
return MANUAL;
}
- int getWpsPin() {
- try {
- String wpsPin = ((TextView) mView.findViewById(R.id.wps_pin)).getText().toString();
- return Integer.parseInt(wpsPin);
- } catch (NumberFormatException e) {
- return -1;
+ WpsConfiguration getWpsConfig() {
+ WpsConfiguration config = new WpsConfiguration();
+ switch (mNetworkSetupSpinner.getSelectedItemPosition()) {
+ case WPS_PBC:
+ config.setup = Setup.PBC;
+ break;
+ case WPS_PIN_FROM_ACCESS_POINT:
+ config.setup = Setup.PIN_FROM_ACCESS_POINT;
+ break;
+ case WPS_PIN_FROM_DEVICE:
+ config.setup = Setup.PIN_FROM_DEVICE;
+ break;
+ default:
+ config.setup = Setup.INVALID;
+ Log.e(TAG, "WPS not selected type");
+ return config;
}
+ config.pin = ((TextView) mView.findViewById(R.id.wps_pin)).getText().toString();
+ config.BSSID = (mAccessPoint != null) ? mAccessPoint.bssid : null;
+
+ validateAndFetchIpAndProxyFields();
+
+ config.proxySettings = mProxySettings;
+ config.ipAssignment = mIpAssignment;
+ config.linkProperties = new LinkProperties(mLinkProperties);
+ return config;
}
private void showSecurityFields() {
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 52d053f..3a1f767 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -559,14 +559,11 @@
/* package */ void submit(WifiConfigController configController) {
switch(configController.chosenNetworkSetupMethod()) {
case WifiConfigController.WPS_PBC:
- mWifiManager.startWpsPbc(mSelectedAccessPoint.bssid);
- break;
case WifiConfigController.WPS_PIN_FROM_ACCESS_POINT:
- int apPin = configController.getWpsPin();
- mWifiManager.startWpsWithPinFromAccessPoint(mSelectedAccessPoint.bssid, apPin);
+ mWifiManager.startWps(configController.getWpsConfig());
break;
case WifiConfigController.WPS_PIN_FROM_DEVICE:
- int pin = mWifiManager.startWpsWithPinFromDevice(mSelectedAccessPoint.bssid);
+ String pin = mWifiManager.startWps(configController.getWpsConfig());
new AlertDialog.Builder(getActivity())
.setTitle(R.string.wifi_wps_pin_method_configuration)
.setMessage(getResources().getString(R.string.wifi_wps_pin_output, pin))