Loading src/java/com/android/internal/telephony/uicc/SIMRecords.java +59 −22 Original line number Diff line number Diff line Loading @@ -1732,22 +1732,32 @@ public class SIMRecords extends IccRecords { if (ar != null && ar.exception == null) { data = (byte[]) ar.result; mSpnDisplayCondition = 0xff & data[0]; setServiceProviderName(IccUtils.adnStringFieldToString( data, 1, data.length - 1)); // for card double-check and brand override // we have to do this: final String spn = getServiceProviderName(); if (DBG) log("Load EF_SPN: " + getServiceProviderName() if (spn == null || spn.length() == 0) { mSpnState = GetSpnFsmState.READ_SPN_CPHS; } else { if (DBG) log("Load EF_SPN: " + spn + " spnDisplayCondition: " + mSpnDisplayCondition); mTelephonyManager.setSimOperatorNameForPhone( mParentApp.getPhoneId(), getServiceProviderName()); mParentApp.getPhoneId(), spn); mSpnState = GetSpnFsmState.IDLE; } } else { mSpnState = GetSpnFsmState.READ_SPN_CPHS; } if (mSpnState == GetSpnFsmState.READ_SPN_CPHS) { mFh.loadEFTransparent( EF_SPN_CPHS, obtainMessage(EVENT_GET_SPN_DONE)); mRecordsToLoad++; mSpnState = GetSpnFsmState.READ_SPN_CPHS; // See TS 51.011 10.3.11. Basically, default to // show PLMN always, and SPN also if roaming. mSpnDisplayCondition = -1; Loading @@ -1756,30 +1766,57 @@ public class SIMRecords extends IccRecords { case READ_SPN_CPHS: if (ar != null && ar.exception == null) { data = (byte[]) ar.result; setServiceProviderName(IccUtils.adnStringFieldToString(data, 0, data.length)); if (DBG) log("Load EF_SPN_CPHS: " + getServiceProviderName()); setServiceProviderName(IccUtils.adnStringFieldToString( data, 0, data.length)); // for card double-check and brand override // we have to do this: final String spn = getServiceProviderName(); if (spn == null || spn.length() == 0) { mSpnState = GetSpnFsmState.READ_SPN_SHORT_CPHS; } else { // Display CPHS Operator Name only when not roaming mSpnDisplayCondition = 2; if (DBG) log("Load EF_SPN_CPHS: " + spn); mTelephonyManager.setSimOperatorNameForPhone( mParentApp.getPhoneId(), getServiceProviderName()); mParentApp.getPhoneId(), spn); mSpnState = GetSpnFsmState.IDLE; } } else { mSpnState = GetSpnFsmState.READ_SPN_SHORT_CPHS; } if (mSpnState == GetSpnFsmState.READ_SPN_SHORT_CPHS) { mFh.loadEFTransparent( EF_SPN_SHORT_CPHS, obtainMessage(EVENT_GET_SPN_DONE)); mRecordsToLoad++; mSpnState = GetSpnFsmState.READ_SPN_SHORT_CPHS; } break; case READ_SPN_SHORT_CPHS: if (ar != null && ar.exception == null) { data = (byte[]) ar.result; setServiceProviderName(IccUtils.adnStringFieldToString(data, 0, data.length)); if (DBG) log("Load EF_SPN_SHORT_CPHS: " + getServiceProviderName()); setServiceProviderName(IccUtils.adnStringFieldToString( data, 0, data.length)); // for card double-check and brand override // we have to do this: final String spn = getServiceProviderName(); if (spn == null || spn.length() == 0) { if (DBG) log("No SPN loaded in either CHPS or 3GPP"); } else { // Display CPHS Operator Name only when not roaming mSpnDisplayCondition = 2; if (DBG) log("Load EF_SPN_SHORT_CPHS: " + spn); mTelephonyManager.setSimOperatorNameForPhone( mParentApp.getPhoneId(), getServiceProviderName()); mParentApp.getPhoneId(), spn); } } else { setServiceProviderName(null); if (DBG) log("No SPN loaded in either CHPS or 3GPP"); } Loading Loading
src/java/com/android/internal/telephony/uicc/SIMRecords.java +59 −22 Original line number Diff line number Diff line Loading @@ -1732,22 +1732,32 @@ public class SIMRecords extends IccRecords { if (ar != null && ar.exception == null) { data = (byte[]) ar.result; mSpnDisplayCondition = 0xff & data[0]; setServiceProviderName(IccUtils.adnStringFieldToString( data, 1, data.length - 1)); // for card double-check and brand override // we have to do this: final String spn = getServiceProviderName(); if (DBG) log("Load EF_SPN: " + getServiceProviderName() if (spn == null || spn.length() == 0) { mSpnState = GetSpnFsmState.READ_SPN_CPHS; } else { if (DBG) log("Load EF_SPN: " + spn + " spnDisplayCondition: " + mSpnDisplayCondition); mTelephonyManager.setSimOperatorNameForPhone( mParentApp.getPhoneId(), getServiceProviderName()); mParentApp.getPhoneId(), spn); mSpnState = GetSpnFsmState.IDLE; } } else { mSpnState = GetSpnFsmState.READ_SPN_CPHS; } if (mSpnState == GetSpnFsmState.READ_SPN_CPHS) { mFh.loadEFTransparent( EF_SPN_CPHS, obtainMessage(EVENT_GET_SPN_DONE)); mRecordsToLoad++; mSpnState = GetSpnFsmState.READ_SPN_CPHS; // See TS 51.011 10.3.11. Basically, default to // show PLMN always, and SPN also if roaming. mSpnDisplayCondition = -1; Loading @@ -1756,30 +1766,57 @@ public class SIMRecords extends IccRecords { case READ_SPN_CPHS: if (ar != null && ar.exception == null) { data = (byte[]) ar.result; setServiceProviderName(IccUtils.adnStringFieldToString(data, 0, data.length)); if (DBG) log("Load EF_SPN_CPHS: " + getServiceProviderName()); setServiceProviderName(IccUtils.adnStringFieldToString( data, 0, data.length)); // for card double-check and brand override // we have to do this: final String spn = getServiceProviderName(); if (spn == null || spn.length() == 0) { mSpnState = GetSpnFsmState.READ_SPN_SHORT_CPHS; } else { // Display CPHS Operator Name only when not roaming mSpnDisplayCondition = 2; if (DBG) log("Load EF_SPN_CPHS: " + spn); mTelephonyManager.setSimOperatorNameForPhone( mParentApp.getPhoneId(), getServiceProviderName()); mParentApp.getPhoneId(), spn); mSpnState = GetSpnFsmState.IDLE; } } else { mSpnState = GetSpnFsmState.READ_SPN_SHORT_CPHS; } if (mSpnState == GetSpnFsmState.READ_SPN_SHORT_CPHS) { mFh.loadEFTransparent( EF_SPN_SHORT_CPHS, obtainMessage(EVENT_GET_SPN_DONE)); mRecordsToLoad++; mSpnState = GetSpnFsmState.READ_SPN_SHORT_CPHS; } break; case READ_SPN_SHORT_CPHS: if (ar != null && ar.exception == null) { data = (byte[]) ar.result; setServiceProviderName(IccUtils.adnStringFieldToString(data, 0, data.length)); if (DBG) log("Load EF_SPN_SHORT_CPHS: " + getServiceProviderName()); setServiceProviderName(IccUtils.adnStringFieldToString( data, 0, data.length)); // for card double-check and brand override // we have to do this: final String spn = getServiceProviderName(); if (spn == null || spn.length() == 0) { if (DBG) log("No SPN loaded in either CHPS or 3GPP"); } else { // Display CPHS Operator Name only when not roaming mSpnDisplayCondition = 2; if (DBG) log("Load EF_SPN_SHORT_CPHS: " + spn); mTelephonyManager.setSimOperatorNameForPhone( mParentApp.getPhoneId(), getServiceProviderName()); mParentApp.getPhoneId(), spn); } } else { setServiceProviderName(null); if (DBG) log("No SPN loaded in either CHPS or 3GPP"); } Loading