diff options
| author | 2023-05-05 20:41:42 +0000 | |
|---|---|---|
| committer | 2023-05-05 20:41:42 +0000 | |
| commit | 5be99642cbbdc3762e607d6880dd9ceabf4ea16f (patch) | |
| tree | 2b6d8f9f544fd9bca16699cca2b93614f142e96c | |
| parent | e7f2e5bc5680558b7463de77dd5c20b4b5a438b6 (diff) | |
| parent | a0052e490e44b438dfa80fc9ace79f7a3f5e579c (diff) | |
Merge "[SB Refactor] Add null checks around network capabilities." into udc-dev
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java | 18 | ||||
| -rw-r--r-- | packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiStatusTrackerTest.java | 12 |
2 files changed, 27 insertions, 3 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java index adaf4a1d3ab5..c45d77471932 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java @@ -343,7 +343,12 @@ public class WifiStatusTracker { } @Nullable - private WifiInfo getMainOrUnderlyingWifiInfo(NetworkCapabilities networkCapabilities) { + private WifiInfo getMainOrUnderlyingWifiInfo( + @Nullable NetworkCapabilities networkCapabilities) { + if (networkCapabilities == null) { + return null; + } + WifiInfo mainWifiInfo = getMainWifiInfo(networkCapabilities); if (mainWifiInfo != null) { return mainWifiInfo; @@ -376,7 +381,10 @@ public class WifiStatusTracker { } @Nullable - private WifiInfo getMainWifiInfo(NetworkCapabilities networkCapabilities) { + private WifiInfo getMainWifiInfo(@Nullable NetworkCapabilities networkCapabilities) { + if (networkCapabilities == null) { + return null; + } boolean canHaveWifiInfo = networkCapabilities.hasTransport(TRANSPORT_WIFI) || networkCapabilities.hasTransport(TRANSPORT_CELLULAR); if (!canHaveWifiInfo) { @@ -402,7 +410,11 @@ public class WifiStatusTracker { 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); } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiStatusTrackerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiStatusTrackerTest.java index 6e975cf9d8f3..5a9a9d154070 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiStatusTrackerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiStatusTrackerTest.java @@ -305,4 +305,16 @@ public class WifiStatusTrackerTest { 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) + } } |