Add null check for CarrierConfig
CarrierConfig maybe null when config loader is not ready, so we need to add null check here. Bug: 124447166 Test: RunSettingsRoboTests Change-Id: I3c104f1ca44bb0bcacad460c68084163c758746a
This commit is contained in:
@@ -175,18 +175,21 @@ public class EnabledNetworkModePreferenceController extends
|
||||
R.array.enabled_networks_tdscdma_choices);
|
||||
preference.setEntryValues(
|
||||
R.array.enabled_networks_tdscdma_values);
|
||||
} else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
|
||||
} else if (carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
|
||||
preference.setEntries(R.array.enabled_networks_except_gsm_lte_choices);
|
||||
preference.setEntryValues(R.array.enabled_networks_except_gsm_lte_values);
|
||||
} else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
|
||||
} else if (carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
|
||||
int select = mShow4GForLTE
|
||||
? R.array.enabled_networks_except_gsm_4g_choices
|
||||
: R.array.enabled_networks_except_gsm_choices;
|
||||
preference.setEntries(select);
|
||||
preference.setEntryValues(
|
||||
R.array.enabled_networks_except_gsm_values);
|
||||
} else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
|
||||
} else if (carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
|
||||
preference.setEntries(
|
||||
R.array.enabled_networks_except_lte_choices);
|
||||
preference.setEntryValues(
|
||||
|
@@ -347,6 +347,7 @@ public class MobileNetworkUtils {
|
||||
final PersistableBundle carrierConfig = context.getSystemService(
|
||||
CarrierConfigManager.class).getConfigForSubId(subId);
|
||||
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
||||
|| carrierConfig == null
|
||||
|| !carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)
|
||||
|| (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)
|
||||
|
@@ -112,8 +112,10 @@ public class AutoSelectPreferenceController extends TogglePreferenceController {
|
||||
mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
|
||||
final PersistableBundle carrierConfig = mContext.getSystemService(
|
||||
CarrierConfigManager.class).getConfigForSubId(mSubId);
|
||||
mOnlyAutoSelectInHome = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
|
||||
mOnlyAutoSelectInHome = carrierConfig != null
|
||||
? carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL)
|
||||
: false;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
@@ -111,4 +111,12 @@ public class AutoSelectPreferenceControllerTest {
|
||||
mContext.getString(R.string.manual_mode_disallowed_summary,
|
||||
mTelephonyManager.getSimOperatorName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_carrierConfigNull_shouldNotCrash() {
|
||||
when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(null);
|
||||
|
||||
// Should not crash
|
||||
mController.init(SUB_ID);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user