Merge "Improve the wifi description for the case of private DNS broken" am: 37b17ae752 am: 5eda5a3e7f

am: 9b29332cd3

Change-Id: I3cd916c67afaebfd62863301eca5f6aeb8b0d1c5
This commit is contained in:
Lucas Lin
2019-10-23 03:20:15 -07:00
committed by android-build-merger
2 changed files with 26 additions and 4 deletions

View File

@@ -235,14 +235,28 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
return mNetworkCapabilities.hasCapability(cap) != nc.hasCapability(cap);
}
private boolean hasPrivateDnsStatusChanged(NetworkCapabilities nc) {
// If this is the first time that WifiDetailPreferenceController gets
// NetworkCapabilities, report that something has changed and assign nc to
// mNetworkCapabilities in onCapabilitiesChanged. Note that the NetworkCapabilities
// from onCapabilitiesChanged() will never be null, so calling
// mNetworkCapabilities.isPrivateDnsBroken() would be safe next time.
if (mNetworkCapabilities == null) {
return true;
}
return mNetworkCapabilities.isPrivateDnsBroken() != nc.isPrivateDnsBroken();
}
@Override
public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
// If the network just validated or lost Internet access or detected partial internet
// connectivity, refresh network state. Don't do this on every NetworkCapabilities
// change because refreshNetworkState sends IPCs to the system server from the UI
// thread, which can cause jank.
// connectivity or private dns was broken, refresh network state. Don't do this on
// every NetworkCapabilities change because refreshEntityHeader sends IPCs to the
// system server from the UI thread, which can cause jank.
if (network.equals(mNetwork) && !nc.equals(mNetworkCapabilities)) {
if (hasCapabilityChanged(nc, NET_CAPABILITY_VALIDATED)
if (hasPrivateDnsStatusChanged(nc)
|| hasCapabilityChanged(nc, NET_CAPABILITY_VALIDATED)
|| hasCapabilityChanged(nc, NET_CAPABILITY_CAPTIVE_PORTAL)
|| hasCapabilityChanged(nc, NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);

View File

@@ -993,6 +993,14 @@ public class WifiDetailPreferenceControllerTest {
updateNetworkCapabilities(nc);
inOrder.verify(mockHeaderController).setSummary(summary);
// UI will be refreshed when private DNS is broken.
summary = "Private DNS server cannot be accessed";
when(mockAccessPoint.getSettingsSummary(true /* convertSavedAsDisconnected */))
.thenReturn(summary);
nc.setPrivateDnsBroken(true);
updateNetworkCapabilities(nc);
inOrder.verify(mockHeaderController).setSummary(summary);
// UI will be refreshed when device connects to a partial connectivity network.
summary = "Limited connection";
when(mockAccessPoint.getSettingsSummary(true /*convertSavedAsDisconnected*/))