Loading telephony/java/com/android/internal/telephony/cdma/RuimRecords.java 100644 → 100755 +44 −0 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.internal.telephony.cdma; import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY; import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC; import android.os.AsyncResult; import android.os.Handler; import android.os.Message; import android.os.Registrant; import android.os.SystemProperties; import android.util.Log; import com.android.internal.telephony.AdnRecord; Loading Loading @@ -59,6 +62,7 @@ public final class RuimRecords extends IccRecords { private static final int EVENT_RUIM_READY = 1; private static final int EVENT_RADIO_OFF_OR_NOT_AVAILABLE = 2; private static final int EVENT_GET_IMSI_DONE = 3; private static final int EVENT_GET_DEVICE_IDENTITY_DONE = 4; private static final int EVENT_GET_ICCID_DONE = 5; private static final int EVENT_GET_CDMA_SUBSCRIPTION_DONE = 10; Loading Loading @@ -114,6 +118,9 @@ public final class RuimRecords extends IccRecords { adnCache.reset(); phone.setSystemProperty(PROPERTY_ICC_OPERATOR_NUMERIC, null); phone.setSystemProperty(PROPERTY_ICC_OPERATOR_ISO_COUNTRY, null); // recordsRequested is set to false indicating that the SIM // read requests made so far are not valid. This is set to // true only when fresh set of read requests are made. Loading Loading @@ -201,6 +208,33 @@ public final class RuimRecords extends IccRecords { break; /* IO events */ case EVENT_GET_IMSI_DONE: isRecordLoadResponse = true; ar = (AsyncResult)msg.obj; if (ar.exception != null) { Log.e(LOG_TAG, "Exception querying IMSI, Exception:" + ar.exception); break; } mImsi = (String) ar.result; // IMSI (MCC+MNC+MSIN) is at least 6 digits, but not more // than 15 (and usually 15). if (mImsi != null && (mImsi.length() < 6 || mImsi.length() > 15)) { Log.e(LOG_TAG, "invalid IMSI " + mImsi); mImsi = null; } Log.d(LOG_TAG, "IMSI: " + mImsi.substring(0, 6) + "xxxxxxxxx"); String operatorNumeric = getRUIMOperatorNumeric(); if (operatorNumeric != null) { if(operatorNumeric.length() <= 6){ MccTable.updateMccMncConfiguration(phone, operatorNumeric); } } break; case EVENT_GET_CDMA_SUBSCRIPTION_DONE: ar = (AsyncResult)msg.obj; Loading Loading @@ -291,6 +325,13 @@ public final class RuimRecords extends IccRecords { // Further records that can be inserted are Operator/OEM dependent String operator = getRUIMOperatorNumeric(); SystemProperties.set(PROPERTY_ICC_OPERATOR_NUMERIC, operator); if (mImsi != null) { SystemProperties.set(PROPERTY_ICC_OPERATOR_ISO_COUNTRY, MccTable.countryCodeForMcc(Integer.parseInt(mImsi.substring(0,3)))); } recordsLoadedRegistrants.notifyRegistrants( new AsyncResult(null, null, null)); ((CDMAPhone) phone).mRuimCard.broadcastIccStateChangedIntent( Loading @@ -317,6 +358,9 @@ public final class RuimRecords extends IccRecords { Log.v(LOG_TAG, "RuimRecords:fetchRuimRecords " + recordsToLoad); phone.mCM.getIMSI(obtainMessage(EVENT_GET_IMSI_DONE)); recordsToLoad++; phone.getIccFileHandler().loadEFTransparent(EF_ICCID, obtainMessage(EVENT_GET_ICCID_DONE)); recordsToLoad++; Loading Loading
telephony/java/com/android/internal/telephony/cdma/RuimRecords.java 100644 → 100755 +44 −0 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.internal.telephony.cdma; import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY; import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC; import android.os.AsyncResult; import android.os.Handler; import android.os.Message; import android.os.Registrant; import android.os.SystemProperties; import android.util.Log; import com.android.internal.telephony.AdnRecord; Loading Loading @@ -59,6 +62,7 @@ public final class RuimRecords extends IccRecords { private static final int EVENT_RUIM_READY = 1; private static final int EVENT_RADIO_OFF_OR_NOT_AVAILABLE = 2; private static final int EVENT_GET_IMSI_DONE = 3; private static final int EVENT_GET_DEVICE_IDENTITY_DONE = 4; private static final int EVENT_GET_ICCID_DONE = 5; private static final int EVENT_GET_CDMA_SUBSCRIPTION_DONE = 10; Loading Loading @@ -114,6 +118,9 @@ public final class RuimRecords extends IccRecords { adnCache.reset(); phone.setSystemProperty(PROPERTY_ICC_OPERATOR_NUMERIC, null); phone.setSystemProperty(PROPERTY_ICC_OPERATOR_ISO_COUNTRY, null); // recordsRequested is set to false indicating that the SIM // read requests made so far are not valid. This is set to // true only when fresh set of read requests are made. Loading Loading @@ -201,6 +208,33 @@ public final class RuimRecords extends IccRecords { break; /* IO events */ case EVENT_GET_IMSI_DONE: isRecordLoadResponse = true; ar = (AsyncResult)msg.obj; if (ar.exception != null) { Log.e(LOG_TAG, "Exception querying IMSI, Exception:" + ar.exception); break; } mImsi = (String) ar.result; // IMSI (MCC+MNC+MSIN) is at least 6 digits, but not more // than 15 (and usually 15). if (mImsi != null && (mImsi.length() < 6 || mImsi.length() > 15)) { Log.e(LOG_TAG, "invalid IMSI " + mImsi); mImsi = null; } Log.d(LOG_TAG, "IMSI: " + mImsi.substring(0, 6) + "xxxxxxxxx"); String operatorNumeric = getRUIMOperatorNumeric(); if (operatorNumeric != null) { if(operatorNumeric.length() <= 6){ MccTable.updateMccMncConfiguration(phone, operatorNumeric); } } break; case EVENT_GET_CDMA_SUBSCRIPTION_DONE: ar = (AsyncResult)msg.obj; Loading Loading @@ -291,6 +325,13 @@ public final class RuimRecords extends IccRecords { // Further records that can be inserted are Operator/OEM dependent String operator = getRUIMOperatorNumeric(); SystemProperties.set(PROPERTY_ICC_OPERATOR_NUMERIC, operator); if (mImsi != null) { SystemProperties.set(PROPERTY_ICC_OPERATOR_ISO_COUNTRY, MccTable.countryCodeForMcc(Integer.parseInt(mImsi.substring(0,3)))); } recordsLoadedRegistrants.notifyRegistrants( new AsyncResult(null, null, null)); ((CDMAPhone) phone).mRuimCard.broadcastIccStateChangedIntent( Loading @@ -317,6 +358,9 @@ public final class RuimRecords extends IccRecords { Log.v(LOG_TAG, "RuimRecords:fetchRuimRecords " + recordsToLoad); phone.mCM.getIMSI(obtainMessage(EVENT_GET_IMSI_DONE)); recordsToLoad++; phone.getIccFileHandler().loadEFTransparent(EF_ICCID, obtainMessage(EVENT_GET_ICCID_DONE)); recordsToLoad++; Loading