Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37b17ae7 authored by Lucas Lin's avatar Lucas Lin Committed by Gerrit Code Review
Browse files

Merge "Improve the wifi description for the case of private DNS broken"

parents b333e79d 570f7dbc
Loading
Loading
Loading
Loading
+18 −4
Original line number Original line Diff line number Diff line
@@ -235,14 +235,28 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
            return mNetworkCapabilities.hasCapability(cap) != nc.hasCapability(cap);
            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
        @Override
        public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
        public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
            // If the network just validated or lost Internet access or detected partial internet
            // If the network just validated or lost Internet access or detected partial internet
            // connectivity, refresh network state. Don't do this on every NetworkCapabilities
            // connectivity or private dns was broken, refresh network state. Don't do this on
            // change because refreshNetworkState sends IPCs to the system server from the UI
            // every NetworkCapabilities change because refreshEntityHeader sends IPCs to the
            // thread, which can cause jank.
            // system server from the UI thread, which can cause jank.
            if (network.equals(mNetwork) && !nc.equals(mNetworkCapabilities)) {
            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_CAPTIVE_PORTAL)
                        || hasCapabilityChanged(nc, NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
                        || hasCapabilityChanged(nc, NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
                    mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
                    mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
+8 −0
Original line number Original line Diff line number Diff line
@@ -993,6 +993,14 @@ public class WifiDetailPreferenceControllerTest {
        updateNetworkCapabilities(nc);
        updateNetworkCapabilities(nc);
        inOrder.verify(mockHeaderController).setSummary(summary);
        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.
        // UI will be refreshed when device connects to a partial connectivity network.
        summary = "Limited connection";
        summary = "Limited connection";
        when(mockAccessPoint.getSettingsSummary(true /*convertSavedAsDisconnected*/))
        when(mockAccessPoint.getSettingsSummary(true /*convertSavedAsDisconnected*/))