Use WpsConfiguration for new API
Change-Id: I4c1544178bcb29e751db56edb781faf9145cdf86
This commit is contained in:
@@ -30,6 +30,9 @@ import android.net.wifi.WifiConfiguration;
|
|||||||
import android.net.wifi.WifiConfiguration.IpAssignment;
|
import android.net.wifi.WifiConfiguration.IpAssignment;
|
||||||
import android.net.wifi.WifiConfiguration.AuthAlgorithm;
|
import android.net.wifi.WifiConfiguration.AuthAlgorithm;
|
||||||
import android.net.wifi.WifiConfiguration.KeyMgmt;
|
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 static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
|
||||||
import android.net.wifi.WifiConfiguration.ProxySettings;
|
import android.net.wifi.WifiConfiguration.ProxySettings;
|
||||||
import android.net.wifi.WifiInfo;
|
import android.net.wifi.WifiInfo;
|
||||||
@@ -114,6 +117,10 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
private TextView mProxyPortView;
|
private TextView mProxyPortView;
|
||||||
private TextView mProxyExclusionListView;
|
private TextView mProxyExclusionListView;
|
||||||
|
|
||||||
|
private IpAssignment mIpAssignment;
|
||||||
|
private ProxySettings mProxySettings;
|
||||||
|
private LinkProperties mLinkProperties = new LinkProperties();
|
||||||
|
|
||||||
static boolean requireKeyStore(WifiConfiguration config) {
|
static boolean requireKeyStore(WifiConfiguration config) {
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
return false;
|
return false;
|
||||||
@@ -331,28 +338,37 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
return null;
|
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) ?
|
mIpSettingsSpinner.getSelectedItemPosition() == STATIC_IP) ?
|
||||||
IpAssignment.STATIC : IpAssignment.DHCP;
|
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
|
//TODO: A better way to do this is to not dismiss the
|
||||||
//dialog as long as one of the fields is invalid
|
//dialog as long as one of the fields is invalid
|
||||||
LinkProperties linkProperties = new LinkProperties();
|
int result = validateIpConfigFields(mLinkProperties);
|
||||||
int result = validateIpConfigFields(linkProperties);
|
if (result != 0) {
|
||||||
if (result == 0) {
|
mLinkProperties.clear();
|
||||||
config.linkProperties = linkProperties;
|
|
||||||
} else {
|
|
||||||
Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
|
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) ?
|
mProxySettingsSpinner.getSelectedItemPosition() == PROXY_STATIC) ?
|
||||||
ProxySettings.STATIC : ProxySettings.NONE;
|
ProxySettings.STATIC : ProxySettings.NONE;
|
||||||
|
|
||||||
if (config.proxySettings == ProxySettings.STATIC) {
|
if (mProxySettings == ProxySettings.STATIC) {
|
||||||
String host = mProxyHostView.getText().toString();
|
String host = mProxyHostView.getText().toString();
|
||||||
String portStr = mProxyPortView.getText().toString();
|
String portStr = mProxyPortView.getText().toString();
|
||||||
String exclusionList = mProxyExclusionListView.getText().toString();
|
String exclusionList = mProxyExclusionListView.getText().toString();
|
||||||
@@ -366,14 +382,12 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
}
|
}
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
ProxyProperties proxyProperties= new ProxyProperties(host, port, exclusionList);
|
ProxyProperties proxyProperties= new ProxyProperties(host, port, exclusionList);
|
||||||
config.linkProperties.setHttpProxy(proxyProperties);
|
mLinkProperties.setHttpProxy(proxyProperties);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
|
Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
|
||||||
config.proxySettings = ProxySettings.UNASSIGNED;
|
mProxySettings = ProxySettings.UNASSIGNED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return config;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int validateIpConfigFields(LinkProperties linkProperties) {
|
private int validateIpConfigFields(LinkProperties linkProperties) {
|
||||||
@@ -428,13 +442,32 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
return MANUAL;
|
return MANUAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getWpsPin() {
|
WpsConfiguration getWpsConfig() {
|
||||||
try {
|
WpsConfiguration config = new WpsConfiguration();
|
||||||
String wpsPin = ((TextView) mView.findViewById(R.id.wps_pin)).getText().toString();
|
switch (mNetworkSetupSpinner.getSelectedItemPosition()) {
|
||||||
return Integer.parseInt(wpsPin);
|
case WPS_PBC:
|
||||||
} catch (NumberFormatException e) {
|
config.setup = Setup.PBC;
|
||||||
return -1;
|
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() {
|
private void showSecurityFields() {
|
||||||
|
@@ -559,14 +559,11 @@ public class WifiSettings extends SettingsPreferenceFragment
|
|||||||
/* package */ void submit(WifiConfigController configController) {
|
/* package */ void submit(WifiConfigController configController) {
|
||||||
switch(configController.chosenNetworkSetupMethod()) {
|
switch(configController.chosenNetworkSetupMethod()) {
|
||||||
case WifiConfigController.WPS_PBC:
|
case WifiConfigController.WPS_PBC:
|
||||||
mWifiManager.startWpsPbc(mSelectedAccessPoint.bssid);
|
|
||||||
break;
|
|
||||||
case WifiConfigController.WPS_PIN_FROM_ACCESS_POINT:
|
case WifiConfigController.WPS_PIN_FROM_ACCESS_POINT:
|
||||||
int apPin = configController.getWpsPin();
|
mWifiManager.startWps(configController.getWpsConfig());
|
||||||
mWifiManager.startWpsWithPinFromAccessPoint(mSelectedAccessPoint.bssid, apPin);
|
|
||||||
break;
|
break;
|
||||||
case WifiConfigController.WPS_PIN_FROM_DEVICE:
|
case WifiConfigController.WPS_PIN_FROM_DEVICE:
|
||||||
int pin = mWifiManager.startWpsWithPinFromDevice(mSelectedAccessPoint.bssid);
|
String pin = mWifiManager.startWps(configController.getWpsConfig());
|
||||||
new AlertDialog.Builder(getActivity())
|
new AlertDialog.Builder(getActivity())
|
||||||
.setTitle(R.string.wifi_wps_pin_method_configuration)
|
.setTitle(R.string.wifi_wps_pin_method_configuration)
|
||||||
.setMessage(getResources().getString(R.string.wifi_wps_pin_output, pin))
|
.setMessage(getResources().getString(R.string.wifi_wps_pin_output, pin))
|
||||||
|
Reference in New Issue
Block a user