Fix the NPE issue
Bug: 190938633 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I249d701abfa79872a331c071116d2db0bfdcced6
This commit is contained in:
@@ -200,7 +200,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
* ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
|
* ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
|
||||||
* by the Test DPC tool in AFW mode.
|
* by the Test DPC tool in AFW mode.
|
||||||
*/
|
*/
|
||||||
private boolean mIsRestricted;
|
protected boolean mIsRestricted;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
AirplaneModeEnabler mAirplaneModeEnabler;
|
AirplaneModeEnabler mAirplaneModeEnabler;
|
||||||
@@ -218,7 +218,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
PreferenceCategory mConnectedWifiEntryPreferenceCategory;
|
PreferenceCategory mConnectedWifiEntryPreferenceCategory;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
PreferenceCategory mFirstWifiEntryPreferenceCategory;
|
PreferenceCategory mFirstWifiEntryPreferenceCategory;
|
||||||
private PreferenceCategory mWifiEntryPreferenceCategory;
|
@VisibleForTesting
|
||||||
|
PreferenceCategory mWifiEntryPreferenceCategory;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
AddWifiNetworkPreference mAddWifiNetworkPreference;
|
AddWifiNetworkPreference mAddWifiNetworkPreference;
|
||||||
private WifiSwitchPreferenceController mWifiSwitchPreferenceController;
|
private WifiSwitchPreferenceController mWifiSwitchPreferenceController;
|
||||||
@@ -771,7 +772,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
|
// in case state has changed
|
||||||
if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
|
if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
|
||||||
return;
|
return;
|
||||||
|
@@ -535,4 +535,32 @@ public class NetworkProviderSettingsTest {
|
|||||||
|
|
||||||
assertThat(p instanceof NetworkProviderSettings.FirstWifiEntryPreference).isTrue();
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user