diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java index 2495ca58460..088bfbfa475 100644 --- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java +++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java @@ -132,7 +132,8 @@ public class NetworkSelectSettings extends DashboardFragment { @Override public void onStart() { super.onStart(); - mForbiddenPlmns = Arrays.asList(mTelephonyManager.getForbiddenPlmns()); + + updateForbiddenPlmns(); setProgressBarVisible(true); mNetworkScanHelper.startNetworkScan( @@ -141,6 +142,17 @@ public class NetworkSelectSettings extends DashboardFragment { : NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS); } + /** + * Update forbidden PLMNs from the USIM App + */ + @VisibleForTesting + void updateForbiddenPlmns() { + final String[] forbiddenPlmns = mTelephonyManager.getForbiddenPlmns(); + mForbiddenPlmns = forbiddenPlmns != null + ? Arrays.asList(forbiddenPlmns) + : new ArrayList<>(); + } + @Override public void onStop() { super.onStop(); diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java index 2aa68f71351..7dfc8a35323 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java @@ -102,4 +102,12 @@ public class NetworkSelectSettingsTest { (NetworkOperatorPreference) mPreferenceCategory.getPreference(0); assertThat(preference.getCellInfo()).isEqualTo(mCellInfo2); } + + @Test + public void updateForbiddenPlmns_forbiddenPlmnsNull_shouldNotCrash() { + when(mTelephonyManager.getForbiddenPlmns()).thenReturn(null); + + // Should not Crash + mNetworkSelectSettings.updateForbiddenPlmns(); + } }