Loading packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +5 −6 Original line number Diff line number Diff line Loading @@ -1303,14 +1303,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { // that don't return the complete set of values and have different types. In Keyguard we // need IccCardConstants, but TelephonyManager would only give us // TelephonyManager.SIM_STATE*, so we retrieve it manually. final int phoneId = SubscriptionManager.getPhoneId(subId); final String stateString = TelephonyManager.getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_SIM_STATE, ""); final TelephonyManager tele = TelephonyManager.from(mContext); int simState = tele.getSimState(slotId); State state; try { state = State.valueOf(stateString); state = State.intToState(simState); } catch(IllegalArgumentException ex) { Log.w(TAG, "Unknown sim state: " + stateString); Log.w(TAG, "Unknown sim state: " + simState); state = State.UNKNOWN; } mSimDatas.put(subId, new SimData(state, slotId, subId)); Loading telephony/java/com/android/internal/telephony/IccCardConstants.java +20 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,10 @@ public class IccCardConstants { static public final String INTENT_VALUE_ICC_CARD_IO_ERROR = "CARD_IO_ERROR"; /* LOCKED means ICC is locked by pin or by network */ public static final String INTENT_VALUE_ICC_LOCKED = "LOCKED"; //TODO: we can remove this state in the future if Bug 18489776 analysis //#42's first race condition is resolved /* INTERNAL LOCKED means ICC is locked by pin or by network */ public static final String INTENT_VALUE_ICC_INTERNAL_LOCKED = "INTERNAL_LOCKED"; /* READY means ICC is ready to access */ public static final String INTENT_VALUE_ICC_READY = "READY"; /* IMSI means ICC IMSI is ready in property */ Loading Loading @@ -81,5 +85,21 @@ public class IccCardConstants { || (this == NETWORK_LOCKED) || (this == READY) || (this == PERM_DISABLED) || (this == CARD_IO_ERROR)); } public static State intToState(int state) throws IllegalArgumentException { switch(state) { case 0: return UNKNOWN; case 1: return ABSENT; case 2: return PIN_REQUIRED; case 3: return PUK_REQUIRED; case 4: return NETWORK_LOCKED; case 5: return READY; case 6: return NOT_READY; case 7: return PERM_DISABLED; case 8: return CARD_IO_ERROR; default: throw new IllegalArgumentException(); } } } } Loading
packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +5 −6 Original line number Diff line number Diff line Loading @@ -1303,14 +1303,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { // that don't return the complete set of values and have different types. In Keyguard we // need IccCardConstants, but TelephonyManager would only give us // TelephonyManager.SIM_STATE*, so we retrieve it manually. final int phoneId = SubscriptionManager.getPhoneId(subId); final String stateString = TelephonyManager.getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_SIM_STATE, ""); final TelephonyManager tele = TelephonyManager.from(mContext); int simState = tele.getSimState(slotId); State state; try { state = State.valueOf(stateString); state = State.intToState(simState); } catch(IllegalArgumentException ex) { Log.w(TAG, "Unknown sim state: " + stateString); Log.w(TAG, "Unknown sim state: " + simState); state = State.UNKNOWN; } mSimDatas.put(subId, new SimData(state, slotId, subId)); Loading
telephony/java/com/android/internal/telephony/IccCardConstants.java +20 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,10 @@ public class IccCardConstants { static public final String INTENT_VALUE_ICC_CARD_IO_ERROR = "CARD_IO_ERROR"; /* LOCKED means ICC is locked by pin or by network */ public static final String INTENT_VALUE_ICC_LOCKED = "LOCKED"; //TODO: we can remove this state in the future if Bug 18489776 analysis //#42's first race condition is resolved /* INTERNAL LOCKED means ICC is locked by pin or by network */ public static final String INTENT_VALUE_ICC_INTERNAL_LOCKED = "INTERNAL_LOCKED"; /* READY means ICC is ready to access */ public static final String INTENT_VALUE_ICC_READY = "READY"; /* IMSI means ICC IMSI is ready in property */ Loading Loading @@ -81,5 +85,21 @@ public class IccCardConstants { || (this == NETWORK_LOCKED) || (this == READY) || (this == PERM_DISABLED) || (this == CARD_IO_ERROR)); } public static State intToState(int state) throws IllegalArgumentException { switch(state) { case 0: return UNKNOWN; case 1: return ABSENT; case 2: return PIN_REQUIRED; case 3: return PUK_REQUIRED; case 4: return NETWORK_LOCKED; case 5: return READY; case 6: return NOT_READY; case 7: return PERM_DISABLED; case 8: return CARD_IO_ERROR; default: throw new IllegalArgumentException(); } } } }