Merge "Fix the NPE issue" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-06-23 10:10:22 +00:00
committed by Android (Google) Code Review
2 changed files with 36 additions and 3 deletions

View File

@@ -201,7 +201,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
* ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
* by the Test DPC tool in AFW mode.
*/
private boolean mIsRestricted;
protected boolean mIsRestricted;
@VisibleForTesting
AirplaneModeEnabler mAirplaneModeEnabler;
@@ -219,7 +219,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
PreferenceCategory mConnectedWifiEntryPreferenceCategory;
@VisibleForTesting
PreferenceCategory mFirstWifiEntryPreferenceCategory;
private PreferenceCategory mWifiEntryPreferenceCategory;
@VisibleForTesting
PreferenceCategory mWifiEntryPreferenceCategory;
@VisibleForTesting
AddWifiNetworkPreference mAddWifiNetworkPreference;
private WifiSwitchPreferenceController mWifiSwitchPreferenceController;
@@ -794,7 +795,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
}
}
private void updateWifiEntryPreferences() {
protected void updateWifiEntryPreferences() {
// bypass the update if the activity and the view are not ready, or it's restricted UI.
if (getActivity() == null || getView() == null || mIsRestricted) {
return;
}
// in case state has changed
if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
return;

View File

@@ -535,4 +535,32 @@ public class NetworkProviderSettingsTest {
assertThat(p instanceof NetworkProviderSettings.FirstWifiEntryPreference).isTrue();
}
@Test
public void updateWifiEntryPreferences_activityIsNull_ShouldNotCrash() {
when(mNetworkProviderSettings.getActivity()).thenReturn(null);
// should not crash
mNetworkProviderSettings.updateWifiEntryPreferences();
}
@Test
public void updateWifiEntryPreferences_viewIsNull_ShouldNotCrash() {
final FragmentActivity activity = mock(FragmentActivity.class);
when(mNetworkProviderSettings.getActivity()).thenReturn(activity);
when(mNetworkProviderSettings.getView()).thenReturn(null);
// should not crash
mNetworkProviderSettings.updateWifiEntryPreferences();
}
@Test
public void updateWifiEntryPreferences_isRestricted_bypassUpdate() {
mNetworkProviderSettings.mIsRestricted = true;
mNetworkProviderSettings.mWifiEntryPreferenceCategory = mock(PreferenceCategory.class);
mNetworkProviderSettings.updateWifiEntryPreferences();
verify(mNetworkProviderSettings.mWifiEntryPreferenceCategory, never()).setVisible(true);
}
}