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

Commit 80168d20 authored by Jordan Liu's avatar Jordan Liu
Browse files

Do not use getEid

EuiccManager.getEid may be causing a deadlock, so instead we will
convert from the cardId to the EID using the card strings array in
UiccController.

Test: manual
Bug: 148122658
Change-Id: I83b6c0aeec6fd1af14b2c2c1763fa4cf008a222e
Merged-In: : I83b6c0aeec6fd1af14b2c2c1763fa4cf008a222e
parent 7dbf2457
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -906,10 +906,10 @@ public class SubscriptionInfoUpdater extends Handler {
            // If cardId = unsupported or unitialized, we have no reason to update DB.
            // Additionally, if the device does not support cardId for default eUICC, the CARD_ID
            // field should not contain the EID
            if (cardId >= 0 && UiccController.getInstance().getCardIdForDefaultEuicc()
            UiccController uiccController = UiccController.getInstance();
            if (cardId >= 0 && uiccController.getCardIdForDefaultEuicc()
                    != TelephonyManager.UNSUPPORTED_CARD_ID) {
                values.put(SubscriptionManager.CARD_ID,
                        mEuiccManager.createForCardId(cardId).getEid());
                values.put(SubscriptionManager.CARD_ID, uiccController.convertToCardString(cardId));
            }
            hasChanges = true;
            contentResolver.update(SubscriptionManager.CONTENT_URI, values,
+13 −0
Original line number Diff line number Diff line
@@ -752,6 +752,19 @@ public class UiccController extends Handler {
        }
    }

    /**
     * Converts an integer cardId (public card ID) to a card string.
     * @param cardId to convert
     * @return cardString, or null if the cardId is not valid
     */
    public String convertToCardString(int cardId) {
        if (cardId < 0 || cardId >= mCardStrings.size()) {
            log("convertToCardString: cardId " + cardId + " is not valid");
            return null;
        }
        return mCardStrings.get(cardId);
    }

    /**
     * Converts the card string (the ICCID/EID, formerly named card ID) to the public int cardId.
     * If the given cardString is an ICCID, trailing Fs will be automatically stripped before trying