aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/uicc/UiccController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/internal/telephony/uicc/UiccController.java')
-rw-r--r--src/java/com/android/internal/telephony/uicc/UiccController.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/java/com/android/internal/telephony/uicc/UiccController.java b/src/java/com/android/internal/telephony/uicc/UiccController.java
index f2aeaccc0..ead78131a 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccController.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccController.java
@@ -125,7 +125,15 @@ public class UiccController extends Handler {
for (int i = 0; i < mCis.length; i++) {
Integer index = new Integer(i);
mCis[i].registerForIccStatusChanged(this, EVENT_ICC_STATUS_CHANGED, index);
- mCis[i].registerForAvailable(this, EVENT_ICC_STATUS_CHANGED, index);
+ // TODO remove this once modem correctly notifies the unsols
+ if (DECRYPT_STATE.equals(SystemProperties.get("vold.decrypt")) ||
+ SystemProperties.getBoolean("persist.radio.apm_sim_not_pwdn", false)) {
+ // Reading ICC status in airplane mode is only supported in QCOM
+ // RILs when this property is set to true
+ mCis[i].registerForAvailable(this, EVENT_ICC_STATUS_CHANGED, index);
+ } else {
+ mCis[i].registerForOn(this, EVENT_ICC_STATUS_CHANGED, index);
+ }
mCis[i].registerForNotAvailable(this, EVENT_RADIO_UNAVAILABLE, index);
mCis[i].registerForIccRefresh(this, EVENT_SIM_REFRESH, index);
}