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

Commit 89799e72 authored by Kazuhiro Ondo's avatar Kazuhiro Ondo Committed by Wink Saville
Browse files

Fix incorrect ERI banner format

Fix conflicting display issue with ERI and CSIM SPN test.
Do not display them together but only override ERI text with CSIM
SPN in home area.

Bug: 5008969
Change-Id: I88383acd1c7f4c5bfb1f66349ff2f37b2edbbc9c
parent 64ba5eaa
Loading
Loading
Loading
Loading
+12 −38
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
    CDMALTEPhone mCdmaLtePhone;

    private ServiceState  mLteSS;  // The last LTE state from Voice Registration
    private String mCurrentSpn = null;

    public CdmaLteServiceStateTracker(CDMALTEPhone phone) {
        super(phone);
@@ -345,6 +344,18 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
                ss.setOperatorAlphaLong(eriText);
            }

            if (cm.getSimState().isSIMReady()) {
                // SIM is found on the device. If ERI roaming is OFF, use operator name
                // from CSIM record.
                boolean showSpn =
                    ((CdmaLteUiccRecords)phone.mIccRecords).getCsimSpnDisplayCondition();
                int iconIndex = ss.getCdmaEriIconIndex();

                if (showSpn && (iconIndex == EriInfo.ROAMING_INDICATOR_OFF)) {
                    ss.setOperatorAlphaLong(phone.mIccRecords.getServiceProviderName());
                }
            }

            String operatorNumeric;

            phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ALPHA,
@@ -467,43 +478,6 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
        return provisioningState;
    }

    @Override
    protected void updateSpnDisplay() {
        // mOperatorAlphaLong contains the ERI text
        String plmn = ss.getOperatorAlphaLong();

        boolean showSpn = false;
        String spn = null;
        if (cm.getSimState().isSIMReady()) {
            // SIM is found on the device. Read the operator name from the card.
            showSpn = ((CdmaLteUiccRecords)phone.mIccRecords).getCsimSpnDisplayCondition();
            spn = phone.mIccRecords.getServiceProviderName();

            // double check we are not printing identicall test
            if (TextUtils.equals(plmn, spn)) showSpn = false;
        }

        if (!TextUtils.equals(plmn, mCurPlmn) ||
            !TextUtils.equals(spn, mCurrentSpn)) {
            boolean showPlmn = plmn != null;
            if (DBG) {
                log(String.format("updateSpnDisplay: changed sending intent" +
                                  " showPlmn='%b' plmn='%s' showSpn='%b' spn='%s'",
                                  showPlmn, plmn, showSpn, spn));
            }
            Intent intent = new Intent(Intents.SPN_STRINGS_UPDATED_ACTION);
            intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
            intent.putExtra(Intents.EXTRA_SHOW_SPN, showSpn);
            intent.putExtra(Intents.EXTRA_SPN, spn);
            intent.putExtra(Intents.EXTRA_SHOW_PLMN, showPlmn);
            intent.putExtra(Intents.EXTRA_PLMN, plmn);
            phone.getContext().sendStickyBroadcast(intent);
        }

        mCurPlmn = plmn;
        mCurrentSpn = spn;
    }

    @Override
    protected void log(String s) {
        Log.d(LOG_TAG, "[CdmaLteSST] " + s);