diff options
Diffstat (limited to 'src/java/com/android/internal/telephony/uicc/SIMRecords.java')
-rw-r--r-- | src/java/com/android/internal/telephony/uicc/SIMRecords.java | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/src/java/com/android/internal/telephony/uicc/SIMRecords.java b/src/java/com/android/internal/telephony/uicc/SIMRecords.java index fd62e361c..5caf07751 100644 --- a/src/java/com/android/internal/telephony/uicc/SIMRecords.java +++ b/src/java/com/android/internal/telephony/uicc/SIMRecords.java @@ -662,7 +662,8 @@ public class SIMRecords extends IccRecords { if (mMncLength != UNKNOWN && mMncLength != UNINITIALIZED) { // finally have both the imsi and the mncLength and can parse the imsi properly - MccTable.updateMccMncConfiguration(mContext, mImsi.substring(0, 3 + mMncLength)); + MccTable.updateMccMncConfiguration(mContext, + mImsi.substring(0, 3 + mMncLength), false); } mImsiReadyRegistrants.notifyRegistrants(); break; @@ -905,7 +906,7 @@ public class SIMRecords extends IccRecords { // finally have both imsi and the length of the mnc and can parse // the imsi properly MccTable.updateMccMncConfiguration(mContext, - mImsi.substring(0, 3 + mMncLength)); + mImsi.substring(0, 3 + mMncLength), false); } } break; @@ -1210,6 +1211,47 @@ public class SIMRecords extends IccRecords { } } + private void handleSimRefresh(IccRefreshResponse refreshResponse){ + if (refreshResponse == null) { + if (DBG) log("handleSimRefresh received without input"); + return; + } + + if (refreshResponse.aid != null && + !refreshResponse.aid.equals(mParentApp.getAid())) { + // This is for different app. Ignore. + return; + } + + switch (refreshResponse.refreshResult) { + case IccRefreshResponse.REFRESH_RESULT_FILE_UPDATE: + if (DBG) log("handleSimRefresh with SIM_FILE_UPDATED"); + handleFileUpdate(refreshResponse.efId); + break; + case IccRefreshResponse.REFRESH_RESULT_INIT: + if (DBG) log("handleSimRefresh with SIM_REFRESH_INIT"); + // need to reload all files (that we care about) + onIccRefreshInit(); + break; + case IccRefreshResponse.REFRESH_RESULT_RESET: + if (DBG) log("handleSimRefresh with SIM_REFRESH_RESET"); + mCi.setRadioPower(false, null); + /* Note: no need to call setRadioPower(true). Assuming the desired + * radio power state is still ON (as tracked by ServiceStateTracker), + * ServiceStateTracker will call setRadioPower when it receives the + * RADIO_STATE_CHANGED notification for the power off. And if the + * desired power state has changed in the interim, we don't want to + * override it with an unconditional power on. + */ + mAdnCache.reset(); + break; + default: + // unknown refresh operation + if (DBG) log("handleSimRefresh with unknown operation"); + break; + } + } + /** * Dispatch 3GPP format message to registrant ({@code GSMPhone} or {@code CDMALTEPhone}) * to pass to the 3GPP SMS dispatcher for delivery. |