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

Commit 101fc75b authored by Chi Zhang's avatar Chi Zhang
Browse files

Avoid creating EriManager if CDMA is unsupported.

Bug: 191908965
Test: build && atest
Change-Id: I63f457d38d27ad56f9af1b8c78081eee44cee313
parent 9a11271e
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -664,8 +664,13 @@ public class ServiceStateTracker extends Handler {

        mCdnr = new CarrierDisplayNameResolver(mPhone);

        // Create EriManager only if phone supports CDMA
        if (UiccController.isCdmaSupported(mPhone.getContext())) {
            mEriManager = TelephonyComponentFactory.getInstance().inject(EriManager.class.getName())
                    .makeEriManager(mPhone, EriManager.ERI_FROM_XML);
        } else {
            mEriManager = null;
        }

        mRatRatcheter = new RatRatcheter(mPhone);
        mVoiceCapable = ((TelephonyManager) mPhone.getContext()
@@ -2146,11 +2151,13 @@ public class ServiceStateTracker extends Handler {
                    }
                }

                if (mEriManager != null) {
                    int roamingIndicator = mNewSS.getCdmaRoamingIndicator();
                    mNewSS.setCdmaEriIconIndex(mEriManager.getCdmaEriIconIndex(roamingIndicator,
                            mDefaultRoamingIndicator));
                    mNewSS.setCdmaEriIconMode(mEriManager.getCdmaEriIconMode(roamingIndicator,
                            mDefaultRoamingIndicator));
                }

                // NOTE: Some operator may require overriding mCdmaRoaming
                // (set by the modem), depending on the mRoamingIndicator.
@@ -3934,7 +3941,7 @@ public class ServiceStateTracker extends Handler {
            boolean hasBrandOverride = mUiccController.getUiccCard(getPhoneId()) != null &&
                    mUiccController.getUiccCard(getPhoneId()).getOperatorBrandOverride() != null;
            if (!hasBrandOverride && (mCi.getRadioState() == TelephonyManager.RADIO_POWER_ON)
                    && (mEriManager.isEriFileLoaded())
                    && (mEriManager != null && mEriManager.isEriFileLoaded())
                    && (!ServiceState.isPsOnlyTech(mSS.getRilVoiceRadioTechnology())
                    || mPhone.getContext().getResources().getBoolean(com.android.internal.R
                    .bool.config_LTE_eri_for_network_name))) {
@@ -5142,8 +5149,10 @@ public class ServiceStateTracker extends Handler {
        log("CarrierConfigChange " + config);

        // Load the ERI based on carrier config. Carrier might have their specific ERI.
        if (mEriManager != null) {
            mEriManager.loadEriFile();
            mCdnr.updateEfForEri(getOperatorNameFromEri());
        }

        updateLteEarfcnLists(config);
        updateReportingCriteria(config);
@@ -5972,7 +5981,7 @@ public class ServiceStateTracker extends Handler {
    }

    String getCdmaEriText(int roamInd, int defRoamInd) {
        return mEriManager.getCdmaEriText(roamInd, defRoamInd);
        return mEriManager != null ? mEriManager.getCdmaEriText(roamInd, defRoamInd) : "no ERI";
    }

    private void updateOperatorNamePattern(PersistableBundle config) {
+4 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
@@ -264,6 +265,9 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        doReturn(dds).when(mPhone).getSubId();
        doReturn(true).when(mPhone).areAllDataDisconnected();

        doReturn(true).when(mPackageManager)
                .hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CDMA);

        mSSTTestHandler = new ServiceStateTrackerTestHandler(getClass().getSimpleName());
        mSSTTestHandler.start();
        waitUntilReady();