diff options
Diffstat (limited to 'src/java/com/android/internal/telephony/uicc/UiccController.java')
-rw-r--r-- | src/java/com/android/internal/telephony/uicc/UiccController.java | 10 |
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); } |