From c749ba028abceffb4605cfdf39dfd0252321bf55 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Thu, 5 Sep 2024 03:55:24 +0800 Subject: [PATCH] Fix Wi-Fi details crash in secondary users - When Wi-Fi details are restricted for secondary users, UI components will be removed to prevent user interaction - The UI update function may not obtain the expected resources, causing NPE issues Bug: 362151753 Flag: EXEMPT bugfix Test: Manual testing atest -c WifiNetworkDetailsFragmentTest Change-Id: Ia97b4e202faff85ced0b6eaf2e4b4f0dc04b5cef --- .../wifi/details/WifiNetworkDetailsFragment.java | 3 +++ .../wifi/details/WifiNetworkDetailsFragmentTest.java | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java index 3ec5bb21152..8aab0e1fb6c 100644 --- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java +++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java @@ -400,6 +400,9 @@ public class WifiNetworkDetailsFragment extends RestrictedDashboardFragment impl @VisibleForTesting void onHotspotNetworkChanged(WifiNetworkDetailsViewModel.HotspotNetworkData data) { + if (mIsUiRestricted) { + return; + } PreferenceScreen screen = getPreferenceScreen(); if (screen == null) { return; diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java index 8f96e271494..631302e61e7 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java @@ -32,6 +32,7 @@ import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; @@ -246,6 +247,15 @@ public class WifiNetworkDetailsFragmentTest { .setSignalStrengthTitle(R.string.hotspot_connection_strength); } + @Test + public void onHotspotNetworkChanged_uiRestricted_doNothing() { + mFragment.mIsUiRestricted = true; + + mFragment.onHotspotNetworkChanged(null /* HotspotNetworkData */); + + verify(mScreen, never()).findPreference(any()); + } + @Test public void updateInternetSource_networkTypeWifi_setWifiResource() { doReturn(mDrawable).when(mContext)