aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/uicc/SIMRecords.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/internal/telephony/uicc/SIMRecords.java')
-rw-r--r--src/java/com/android/internal/telephony/uicc/SIMRecords.java46
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.