Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c53b58a authored by yinxu's avatar yinxu Committed by android-build-merger
Browse files

Merge "Create UiccCard when mUiccCard is null and mCardState is not ABSENT"

am: 69ae80b5

Change-Id: Id432080f36d49102d1b24d1cc4bf33a484cd3d36
parents 2176ca3c 69ae80b5
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -76,9 +76,11 @@ public class UiccSlot extends Handler {
     * Update slot. The main trigger for this is a change in the ICC Card status.
     */
    public void update(CommandsInterface ci, IccCardStatus ics, int phoneId) {
        if (DBG) log("cardStatus update: " + ics.toString());
        synchronized (mLock) {
            CardState oldState = mCardState;
            mCardState = ics.mCardState;
            mIccId = ics.iccid;
            mPhoneId = phoneId;
            parseAtr(ics.atr);
            mCi = ci;
@@ -104,8 +106,12 @@ public class UiccSlot extends Handler {
                    mUiccCard.dispose();
                    mUiccCard = null;
                }
            } else if ((oldState == null || oldState == CardState.CARDSTATE_ABSENT)
                    && mCardState != CardState.CARDSTATE_ABSENT) {
            // Because mUiccCard may be updated in both IccCardStatus and IccSlotStatus, we need to
            // create a new UiccCard instance in two scenarios:
            //   1. mCardState is changing from ABSENT to non ABSENT.
            //   2. The latest mCardState is not ABSENT, but there is no UiccCard instance.
            } else if ((oldState == null || oldState == CardState.CARDSTATE_ABSENT
                    || mUiccCard == null) && mCardState != CardState.CARDSTATE_ABSENT) {
                // No notifications while radio is off or we just powering up
                if (radioState == RadioState.RADIO_ON && mLastRadioState == RadioState.RADIO_ON) {
                    if (DBG) log("update: notify card added");
@@ -136,7 +142,7 @@ public class UiccSlot extends Handler {
     * Update slot based on IccSlotStatus.
     */
    public void update(CommandsInterface ci, IccSlotStatus iss) {
        log("slotStatus update");
        if (DBG) log("slotStatus update: " + iss.toString());
        synchronized (mLock) {
            mCi = ci;
            if (iss.slotState == IccSlotStatus.SlotState.SLOTSTATE_INACTIVE) {