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

Commit d6f8fa97 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Automerger Merge Worker
Browse files

Merge "[SB Refactor] Add null checks around network capabilities." into udc-dev am: 5be99642

parents b3c273bc 5be99642
Loading
Loading
Loading
Loading
+15 −3
Original line number Original line Diff line number Diff line
@@ -343,7 +343,12 @@ public class WifiStatusTracker {
    }
    }


    @Nullable
    @Nullable
    private WifiInfo getMainOrUnderlyingWifiInfo(NetworkCapabilities networkCapabilities) {
    private WifiInfo getMainOrUnderlyingWifiInfo(
            @Nullable NetworkCapabilities networkCapabilities) {
        if (networkCapabilities == null) {
            return null;
        }

        WifiInfo mainWifiInfo = getMainWifiInfo(networkCapabilities);
        WifiInfo mainWifiInfo = getMainWifiInfo(networkCapabilities);
        if (mainWifiInfo != null) {
        if (mainWifiInfo != null) {
            return mainWifiInfo;
            return mainWifiInfo;
@@ -376,7 +381,10 @@ public class WifiStatusTracker {
    }
    }


    @Nullable
    @Nullable
    private WifiInfo getMainWifiInfo(NetworkCapabilities networkCapabilities) {
    private WifiInfo getMainWifiInfo(@Nullable NetworkCapabilities networkCapabilities) {
        if (networkCapabilities == null) {
            return null;
        }
        boolean canHaveWifiInfo = networkCapabilities.hasTransport(TRANSPORT_WIFI)
        boolean canHaveWifiInfo = networkCapabilities.hasTransport(TRANSPORT_WIFI)
                || networkCapabilities.hasTransport(TRANSPORT_CELLULAR);
                || networkCapabilities.hasTransport(TRANSPORT_CELLULAR);
        if (!canHaveWifiInfo) {
        if (!canHaveWifiInfo) {
@@ -402,7 +410,11 @@ public class WifiStatusTracker {
                getMainOrUnderlyingWifiInfo(networkCapabilities));
                getMainOrUnderlyingWifiInfo(networkCapabilities));
    }
    }


    private boolean connectionIsWifi(NetworkCapabilities networkCapabilities, WifiInfo wifiInfo) {
    private boolean connectionIsWifi(
            @Nullable NetworkCapabilities networkCapabilities, WifiInfo wifiInfo) {
        if (networkCapabilities == null) {
            return false;
        }
        return wifiInfo != null || networkCapabilities.hasTransport(TRANSPORT_WIFI);
        return wifiInfo != null || networkCapabilities.hasTransport(TRANSPORT_WIFI);
    }
    }


+12 −0
Original line number Original line Diff line number Diff line
@@ -305,4 +305,16 @@ public class WifiStatusTrackerTest {


        assertThat(mWifiStatusTracker.isDefaultNetwork).isTrue();
        assertThat(mWifiStatusTracker.isDefaultNetwork).isTrue();
    }
    }

    /** Regression test for b/280169520. */
    @Test
    public void networkCallbackNullCapabilities_noCrash() {
        Network primaryNetwork = Mockito.mock(Network.class);

        // WHEN the network capabilities are null
        mNetworkCallbackCaptor.getValue().onCapabilitiesChanged(
                primaryNetwork, /* networkCapabilities= */ null);

        // THEN there's no crash (no assert needed)
    }
}
}