Fixed the incorrect operator name displayed when roaming.
Jack Yu [Tue, 11 Aug 2015 20:50:20 +0000 (13:50 -0700)]
The operator name was incorrectly overwritten when roaming
on partner's LTE network. In that case, ERI roaming indicator
is off, NID/SID is zero (because LTE does not support ERI/NID/SID).

The original requirement for using the name from CSIM EF_SPN
is for CDMA only (b/5008969), therefore we need to make sure the
logic is not applied in the LTE case.

bug: 22951507
Change-Id: I3595228e1a637f4bfd05e34cf9a702bb0e1bba59

src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java

index f79f544..18689e2 100644 (file)
@@ -460,9 +460,11 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
             }
 
             if (mUiccApplcation != null && mUiccApplcation.getState() == AppState.APPSTATE_READY &&
-                    mIccRecords != null && (mSS.getVoiceRegState() == ServiceState.STATE_IN_SERVICE)) {
+                    mIccRecords != null && (mSS.getVoiceRegState() == ServiceState.STATE_IN_SERVICE)
+                    && mSS.getRilVoiceRadioTechnology() != ServiceState.RIL_RADIO_TECHNOLOGY_LTE) {
                 // SIM is found on the device. If ERI roaming is OFF, and SID/NID matches
-                // one configured in SIM, use operator name from CSIM record.
+                // one configured in SIM, use operator name from CSIM record. Note that ERI, SID,
+                // and NID are CDMA only, not applicable to LTE.
                 boolean showSpn =
                     ((RuimRecords)mIccRecords).getCsimSpnDisplayCondition();
                 int iconIndex = mSS.getCdmaEriIconIndex();