Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26a5023d authored by jackqdyulei's avatar jackqdyulei
Browse files

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
parent 88d6b2f9
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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(
+1 −0
Original line number Diff line number Diff line
@@ -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)
+4 −2
Original line number Diff line number Diff line
@@ -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;
    }
+8 −0
Original line number Diff line number Diff line
@@ -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);
    }
}