Merge "Not show connecting screen when editing a network"
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 7437317..7ab647e 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -402,52 +402,48 @@
}
private int validateIpConfigFields(LinkProperties linkProperties) {
+ String ipAddr = mIpAddressView.getText().toString();
+ InetAddress inetAddr = null;
try {
- String ipAddr = mIpAddressView.getText().toString();
- if (!InetAddress.isNumeric(ipAddr)) {
- return R.string.wifi_ip_settings_invalid_ip_address;
- }
- InetAddress inetAddr = InetAddress.getByName(ipAddr);
+ inetAddr = NetworkUtils.numericToInetAddress(ipAddr);
+ } catch (IllegalArgumentException e) {
+ return R.string.wifi_ip_settings_invalid_ip_address;
+ }
- int networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText()
- .toString());
- if (networkPrefixLength < 0 || networkPrefixLength > 32) {
- return R.string.wifi_ip_settings_invalid_network_prefix_length;
- }
+ int networkPrefixLength = -1;
+ try {
+ networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText().toString());
+ } catch (NumberFormatException e) { }
+ if (networkPrefixLength < 0 || networkPrefixLength > 32) {
+ return R.string.wifi_ip_settings_invalid_network_prefix_length;
+ }
+ linkProperties.addLinkAddress(new LinkAddress(inetAddr, networkPrefixLength));
- linkProperties.addLinkAddress(new LinkAddress(inetAddr, networkPrefixLength));
+ String gateway = mGatewayView.getText().toString();
+ InetAddress gatewayAddr = null;
+ try {
+ gatewayAddr = NetworkUtils.numericToInetAddress(gateway);
+ } catch (IllegalArgumentException e) {
+ return R.string.wifi_ip_settings_invalid_gateway;
+ }
+ linkProperties.addGateway(gatewayAddr);
- String gateway = mGatewayView.getText().toString();
- if (!InetAddress.isNumeric(gateway)) {
- return R.string.wifi_ip_settings_invalid_gateway;
- }
- InetAddress gatewayAddr;
+ String dns = mDns1View.getText().toString();
+ InetAddress dnsAddr = null;
+ try {
+ dnsAddr = NetworkUtils.numericToInetAddress(dns);
+ } catch (IllegalArgumentException e) {
+ return R.string.wifi_ip_settings_invalid_dns;
+ }
+ linkProperties.addDns(dnsAddr);
+ if (mDns2View.length() > 0) {
+ dns = mDns2View.getText().toString();
try {
- gatewayAddr = InetAddress.getByName(gateway);
- } catch (UnknownHostException e) {
- return R.string.wifi_ip_settings_invalid_gateway;
- }
- linkProperties.addGateway(gatewayAddr);
-
- String dns = mDns1View.getText().toString();
- if (!InetAddress.isNumeric(dns)) {
+ dnsAddr = NetworkUtils.numericToInetAddress(dns);
+ } catch (IllegalArgumentException e) {
return R.string.wifi_ip_settings_invalid_dns;
}
- linkProperties.addDns(InetAddress.getByName(dns));
- if (mDns2View.length() > 0) {
- dns = mDns2View.getText().toString();
- if (!InetAddress.isNumeric(dns)) {
- return R.string.wifi_ip_settings_invalid_dns;
- }
- linkProperties.addDns(InetAddress.getByName(dns));
- }
-
- } catch (NumberFormatException ignore) {
- return R.string.wifi_ip_settings_invalid_network_prefix_length;
- } catch (UnknownHostException e) {
- //Should not happen since we have already validated addresses
- Log.e(TAG, "Failure to validate IP configuration " + e);
- return R.string.wifi_ip_settings_invalid_ip_address;
+ linkProperties.addDns(dnsAddr);
}
return 0;
}