Replace the way to access StaticIpConfiguration

StaticIpConfiguration is a part of incoming connectivity
mainline module. The hidden variable is not accessible for
module outside. The caller should use getter and builder
to access it. Replace the usage with the formal way.

Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
      com.android.settings.wifi.WifiConfigControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
      com.android.settings.wifi.WifiConfigController2Test
Change-Id: I2ccd427ba19a4ec7df863c38ee0b34cf0be87fa5
This commit is contained in:
Chiachang Wang
2021-03-17 17:25:41 +08:00
parent 5ee7a7d07d
commit b16da1a9ca
2 changed files with 146 additions and 115 deletions

View File

@@ -327,9 +327,9 @@ public class WifiConfigController implements TextWatcher,
// Display IP address. // Display IP address.
StaticIpConfiguration staticConfig = config.getIpConfiguration() StaticIpConfiguration staticConfig = config.getIpConfiguration()
.getStaticIpConfiguration(); .getStaticIpConfiguration();
if (staticConfig != null && staticConfig.ipAddress != null) { if (staticConfig != null && staticConfig.getIpAddress() != null) {
addRow(group, R.string.wifi_ip_address, addRow(group, R.string.wifi_ip_address,
staticConfig.ipAddress.getAddress().getHostAddress()); staticConfig.getIpAddress().getAddress().getHostAddress());
} }
} else { } else {
mIpSettingsSpinner.setSelection(DHCP); mIpSettingsSpinner.setSelection(DHCP);
@@ -915,14 +915,21 @@ public class WifiConfigController implements TextWatcher,
if (inetAddr == null || inetAddr.equals(Inet4Address.ANY)) { if (inetAddr == null || inetAddr.equals(Inet4Address.ANY)) {
return R.string.wifi_ip_settings_invalid_ip_address; return R.string.wifi_ip_settings_invalid_ip_address;
} }
// Copy all fields into the builder first and set desired value later with builder.
final StaticIpConfiguration.Builder staticIPBuilder = new StaticIpConfiguration.Builder()
.setDnsServers(staticIpConfiguration.getDnsServers())
.setDomains(staticIpConfiguration.getDomains())
.setGateway(staticIpConfiguration.getGateway())
.setIpAddress(staticIpConfiguration.getIpAddress());
try {
int networkPrefixLength = -1; int networkPrefixLength = -1;
try { try {
networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText().toString()); networkPrefixLength = Integer.parseInt(
mNetworkPrefixLengthView.getText().toString());
if (networkPrefixLength < 0 || networkPrefixLength > 32) { if (networkPrefixLength < 0 || networkPrefixLength > 32) {
return R.string.wifi_ip_settings_invalid_network_prefix_length; return R.string.wifi_ip_settings_invalid_network_prefix_length;
} }
staticIpConfiguration.ipAddress = new LinkAddress(inetAddr, networkPrefixLength); staticIPBuilder.setIpAddress(new LinkAddress(inetAddr, networkPrefixLength));
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
// Set the hint as default after user types in ip address // Set the hint as default after user types in ip address
mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString( mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString(
@@ -950,11 +957,12 @@ public class WifiConfigController implements TextWatcher,
if (gatewayAddr.isMulticastAddress()) { if (gatewayAddr.isMulticastAddress()) {
return R.string.wifi_ip_settings_invalid_gateway; return R.string.wifi_ip_settings_invalid_gateway;
} }
staticIpConfiguration.gateway = gatewayAddr; staticIPBuilder.setGateway(gatewayAddr);
} }
String dns = mDns1View.getText().toString(); String dns = mDns1View.getText().toString();
InetAddress dnsAddr = null; InetAddress dnsAddr = null;
final ArrayList<InetAddress> dnsServers = new ArrayList<>();
if (TextUtils.isEmpty(dns)) { if (TextUtils.isEmpty(dns)) {
//If everything else is valid, provide hint as a default option //If everything else is valid, provide hint as a default option
@@ -964,7 +972,7 @@ public class WifiConfigController implements TextWatcher,
if (dnsAddr == null) { if (dnsAddr == null) {
return R.string.wifi_ip_settings_invalid_dns; return R.string.wifi_ip_settings_invalid_dns;
} }
staticIpConfiguration.dnsServers.add(dnsAddr); dnsServers.add(dnsAddr);
} }
if (mDns2View.length() > 0) { if (mDns2View.length() > 0) {
@@ -973,9 +981,15 @@ public class WifiConfigController implements TextWatcher,
if (dnsAddr == null) { if (dnsAddr == null) {
return R.string.wifi_ip_settings_invalid_dns; return R.string.wifi_ip_settings_invalid_dns;
} }
staticIpConfiguration.dnsServers.add(dnsAddr); dnsServers.add(dnsAddr);
} }
staticIPBuilder.setDnsServers(dnsServers);
return 0; return 0;
} finally {
// Caller of this method may rely on staticIpConfiguration, so build the final result
// at the end of the method.
staticIpConfiguration = staticIPBuilder.build();
}
} }
private void showSecurityFields(boolean refreshEapMethods, boolean refreshCertificates) { private void showSecurityFields(boolean refreshEapMethods, boolean refreshCertificates) {

View File

@@ -317,9 +317,9 @@ public class WifiConfigController2 implements TextWatcher,
// Display IP address. // Display IP address.
StaticIpConfiguration staticConfig = config.getIpConfiguration() StaticIpConfiguration staticConfig = config.getIpConfiguration()
.getStaticIpConfiguration(); .getStaticIpConfiguration();
if (staticConfig != null && staticConfig.ipAddress != null) { if (staticConfig != null && staticConfig.getIpAddress() != null) {
addRow(group, R.string.wifi_ip_address, addRow(group, R.string.wifi_ip_address,
staticConfig.ipAddress.getAddress().getHostAddress()); staticConfig.getIpAddress().getAddress().getHostAddress());
} }
} else { } else {
mIpSettingsSpinner.setSelection(DHCP); mIpSettingsSpinner.setSelection(DHCP);
@@ -898,13 +898,21 @@ public class WifiConfigController2 implements TextWatcher,
return R.string.wifi_ip_settings_invalid_ip_address; return R.string.wifi_ip_settings_invalid_ip_address;
} }
// Copy all fields into the builder first and set desired value later with builder.
final StaticIpConfiguration.Builder staticIPBuilder = new StaticIpConfiguration.Builder()
.setDnsServers(staticIpConfiguration.getDnsServers())
.setDomains(staticIpConfiguration.getDomains())
.setGateway(staticIpConfiguration.getGateway())
.setIpAddress(staticIpConfiguration.getIpAddress());
try {
int networkPrefixLength = -1; int networkPrefixLength = -1;
try { try {
networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText().toString()); networkPrefixLength =
Integer.parseInt(mNetworkPrefixLengthView.getText().toString());
if (networkPrefixLength < 0 || networkPrefixLength > 32) { if (networkPrefixLength < 0 || networkPrefixLength > 32) {
return R.string.wifi_ip_settings_invalid_network_prefix_length; return R.string.wifi_ip_settings_invalid_network_prefix_length;
} }
staticIpConfiguration.ipAddress = new LinkAddress(inetAddr, networkPrefixLength); staticIPBuilder.setIpAddress(new LinkAddress(inetAddr, networkPrefixLength));
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
// Set the hint as default after user types in ip address // Set the hint as default after user types in ip address
mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString( mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString(
@@ -932,11 +940,12 @@ public class WifiConfigController2 implements TextWatcher,
if (gatewayAddr.isMulticastAddress()) { if (gatewayAddr.isMulticastAddress()) {
return R.string.wifi_ip_settings_invalid_gateway; return R.string.wifi_ip_settings_invalid_gateway;
} }
staticIpConfiguration.gateway = gatewayAddr; staticIPBuilder.setGateway(gatewayAddr);
} }
String dns = mDns1View.getText().toString(); String dns = mDns1View.getText().toString();
InetAddress dnsAddr = null; InetAddress dnsAddr = null;
final ArrayList<InetAddress> dnsServers = new ArrayList<>();
if (TextUtils.isEmpty(dns)) { if (TextUtils.isEmpty(dns)) {
//If everything else is valid, provide hint as a default option //If everything else is valid, provide hint as a default option
@@ -946,6 +955,7 @@ public class WifiConfigController2 implements TextWatcher,
if (dnsAddr == null) { if (dnsAddr == null) {
return R.string.wifi_ip_settings_invalid_dns; return R.string.wifi_ip_settings_invalid_dns;
} }
dnsServers.add(dnsAddr);
staticIpConfiguration.dnsServers.add(dnsAddr); staticIpConfiguration.dnsServers.add(dnsAddr);
} }
@@ -955,9 +965,16 @@ public class WifiConfigController2 implements TextWatcher,
if (dnsAddr == null) { if (dnsAddr == null) {
return R.string.wifi_ip_settings_invalid_dns; return R.string.wifi_ip_settings_invalid_dns;
} }
dnsServers.add(dnsAddr);
staticIpConfiguration.dnsServers.add(dnsAddr); staticIpConfiguration.dnsServers.add(dnsAddr);
} }
staticIPBuilder.setDnsServers(dnsServers);
return 0; return 0;
} finally {
// Caller of this method may rely on staticIpConfiguration, so build the final result
// at the end of the method.
staticIpConfiguration = staticIPBuilder.build();
}
} }
private void showSecurityFields(boolean refreshEapMethods, boolean refreshCertificates) { private void showSecurityFields(boolean refreshEapMethods, boolean refreshCertificates) {
@@ -1367,18 +1384,18 @@ public class WifiConfigController2 implements TextWatcher,
StaticIpConfiguration staticConfig = config.getIpConfiguration() StaticIpConfiguration staticConfig = config.getIpConfiguration()
.getStaticIpConfiguration(); .getStaticIpConfiguration();
if (staticConfig != null) { if (staticConfig != null) {
if (staticConfig.ipAddress != null) { if (staticConfig.getIpAddress() != null) {
mIpAddressView.setText( mIpAddressView.setText(
staticConfig.ipAddress.getAddress().getHostAddress()); staticConfig.getIpAddress().getAddress().getHostAddress());
mNetworkPrefixLengthView.setText(Integer.toString(staticConfig.ipAddress mNetworkPrefixLengthView.setText(Integer.toString(
.getPrefixLength())); staticConfig.getIpAddress().getPrefixLength()));
} }
if (staticConfig.gateway != null) { if (staticConfig.gateway != null) {
mGatewayView.setText(staticConfig.gateway.getHostAddress()); mGatewayView.setText(staticConfig.getGateway().getHostAddress());
} }
Iterator<InetAddress> dnsIterator = staticConfig.dnsServers.iterator(); Iterator<InetAddress> dnsIterator = staticConfig.getDnsServers().iterator();
if (dnsIterator.hasNext()) { if (dnsIterator.hasNext()) {
mDns1View.setText(dnsIterator.next().getHostAddress()); mDns1View.setText(dnsIterator.next().getHostAddress());
} }