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

Commit 825221b6 authored by Holly Jiuyu Sun's avatar Holly Jiuyu Sun
Browse files

Fix issues on EuiccCard constructor.

1) Lazy-initialize mEidReadyRegistrants. Otherwise, mEidReadyRegistrants, which is a member
in EuiccCard, should only be accessed after the constructor of UiccCard is finished.
2) remove a todo in UiccController since getCardId() has been added.
3) Check whether EuiccCard is null in EuiccCardController.

Bug: 38206971
Test: test on phone
Change-Id: I6a195d7b80df0490fb10304f666d41aba2dcfbf1
parent 7c845dbc
Loading
Loading
Loading
Loading
+269 −27
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                return (EuiccCard) controller.getUiccCardForSlot(slotId);
            }
        }
        Log.e(TAG, "EuiccCard is null. CardId : " + cardId);
        return null;
    }

@@ -121,6 +122,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetAllProfilesCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccProfileInfo[]> cardCb =
                new AsyncResultCallback<EuiccProfileInfo[]>() {
            @Override
@@ -141,7 +152,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getAllProfiles(cardCb, mEuiccMainThreadHandler);

        card.getAllProfiles(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -149,6 +161,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetProfileCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccProfileInfo> cardCb = new AsyncResultCallback<EuiccProfileInfo>() {
                    @Override
                    public void onResult(EuiccProfileInfo result) {
@@ -168,7 +190,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                    }
                };
        getEuiccCard(cardId).getProfile(iccid, cardCb, mEuiccMainThreadHandler);

        card.getProfile(iccid, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -176,6 +199,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IDisableProfileCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() {
            @Override
            public void onResult(Void result) {
@@ -195,7 +228,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).disableProfile(iccid, refresh, cardCb, mEuiccMainThreadHandler);

        card.disableProfile(iccid, refresh, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -203,6 +237,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            ISwitchToProfileCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccProfileInfo> profileCb =
                new AsyncResultCallback<EuiccProfileInfo>() {
            @Override
@@ -226,8 +270,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                    }
                };
                getEuiccCard(cardId)
                        .switchToProfile(iccid, refresh, switchCb, mEuiccMainThreadHandler);

                card.switchToProfile(iccid, refresh, switchCb, mEuiccMainThreadHandler);
            }

            @Override
@@ -239,7 +283,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getProfile(iccid, profileCb, mEuiccMainThreadHandler);

        card.getProfile(iccid, profileCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -247,6 +292,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            ISetNicknameCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() {
            @Override
            public void onResult(Void result) {
@@ -266,7 +321,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).setNickname(iccid, nickname, cardCb, mEuiccMainThreadHandler);

        card.setNickname(iccid, nickname, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -274,6 +330,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IDeleteProfileCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() {
            @Override
            public void onResult(Void result) {
@@ -293,7 +359,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).deleteProfile(iccid, cardCb, mEuiccMainThreadHandler);

        card.deleteProfile(iccid, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -301,6 +368,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            @EuiccCardManager.ResetOption int options, IResetMemoryCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() {
            @Override
            public void onResult(Void result) {
@@ -320,7 +397,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).resetMemory(options, cardCb, mEuiccMainThreadHandler);

        card.resetMemory(options, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -328,6 +406,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetDefaultSmdpAddressCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() {
            @Override
            public void onResult(String result) {
@@ -347,7 +435,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler);

        card.getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -355,6 +444,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetSmdsAddressCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() {
            @Override
            public void onResult(String result) {
@@ -374,7 +473,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getSmdsAddress(cardCb, mEuiccMainThreadHandler);

        card.getSmdsAddress(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -382,6 +482,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            ISetDefaultSmdpAddressCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() {
            @Override
            public void onResult(Void result) {
@@ -401,7 +511,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler);

        card.setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -409,6 +520,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetRulesAuthTableCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccRulesAuthTable> cardCb =
                new AsyncResultCallback<EuiccRulesAuthTable>() {
            @Override
@@ -429,7 +550,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getRulesAuthTable(cardCb, mEuiccMainThreadHandler);

        card.getRulesAuthTable(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -437,6 +559,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetEuiccChallengeCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -456,7 +588,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getEuiccChallenge(cardCb, mEuiccMainThreadHandler);

        card.getEuiccChallenge(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -464,6 +597,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetEuiccInfo1Callback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -483,7 +626,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getEuiccInfo1(cardCb, mEuiccMainThreadHandler);

        card.getEuiccInfo1(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -491,6 +635,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IGetEuiccInfo2Callback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -510,7 +664,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).getEuiccInfo2(cardCb, mEuiccMainThreadHandler);

        card.getEuiccInfo2(cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -519,6 +674,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            byte[] serverCertificate, IAuthenticateServerCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -538,8 +703,9 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).authenticateServer(matchingId, serverSigned1, serverSignature1,
                euiccCiPkIdToBeUsed, serverCertificate, cardCb, mEuiccMainThreadHandler);

        card.authenticateServer(matchingId, serverSigned1, serverSignature1, euiccCiPkIdToBeUsed,
                serverCertificate, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -548,6 +714,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IPrepareDownloadCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -567,8 +743,9 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).prepareDownload(hashCc, smdpSigned2, smdpSignature2, smdpCertificate,
                cardCb, mEuiccMainThreadHandler);

        card.prepareDownload(hashCc, smdpSigned2, smdpSignature2, smdpCertificate, cardCb,
                mEuiccMainThreadHandler);
    }

    @Override
@@ -576,6 +753,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            byte[] boundProfilePackage, ILoadBoundProfilePackageCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -595,8 +782,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).loadBoundProfilePackage(boundProfilePackage, cardCb,
                mEuiccMainThreadHandler);

        card.loadBoundProfilePackage(boundProfilePackage, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -604,6 +791,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            @EuiccCardManager.CancelReason int reason, ICancelSessionCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() {
            @Override
            public void onResult(byte[] result) {
@@ -623,7 +820,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).cancelSession(transactionId, reason, cardCb, mEuiccMainThreadHandler);

        card.cancelSession(transactionId, reason, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -631,6 +829,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            @EuiccNotification.Event int events, IListNotificationsCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccNotification[]> cardCb =
                new AsyncResultCallback<EuiccNotification[]>() {
            @Override
@@ -651,7 +859,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
            }
        };
        getEuiccCard(cardId).listNotifications(events, cardCb, mEuiccMainThreadHandler);

        card.listNotifications(events, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -659,6 +868,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            @EuiccNotification.Event int events, IRetrieveNotificationListCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccNotification[]> cardCb =
                new AsyncResultCallback<EuiccNotification[]>() {
                    @Override
@@ -679,7 +898,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                    }
                };
        getEuiccCard(cardId).retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler);

        card.retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -687,6 +907,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IRetrieveNotificationCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND, null);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<EuiccNotification> cardCb =
                new AsyncResultCallback<EuiccNotification>() {
                    @Override
@@ -707,7 +937,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                    }
                };
        getEuiccCard(cardId).retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler);

        card.retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler);
    }

    @Override
@@ -715,6 +946,16 @@ public class EuiccCardController extends IEuiccCardController.Stub {
            IRemoveNotificationFromListCallback callback) {
        checkCallingPackage(callingPackage);

        EuiccCard card = getEuiccCard(cardId);
        if (card == null) {
            try {
                callback.onComplete(EuiccCardManager.RESULT_EUICC_NOT_FOUND);
            } catch (RemoteException exception) {
                throw exception.rethrowFromSystemServer();
            }
            return;
        }

        AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() {
                    @Override
                    public void onResult(Void result) {
@@ -735,7 +976,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                    }
                };
        getEuiccCard(cardId).removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler);

        card.removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler);
    }

    @Override
+2 −6
Original line number Diff line number Diff line
@@ -303,15 +303,11 @@ public class UiccController extends Handler {
            for (int idx = 0; idx < mUiccSlots.length; idx++) {
                if (mUiccSlots[idx] != null) {
                    UiccCard uiccCard = mUiccSlots[idx].getUiccCard();
                    if (uiccCard != null) {
                        // todo: uncomment this once getCardId() is added
                        //if (cardId.equals(uiccCard.getCardId())) {
                        if (false) {
                    if (uiccCard != null && cardId.equals(uiccCard.getCardId())) {
                        return idx;
                    }
                }
            }
            }
            // if a match is not found, do a lookup based on ICCID
            for (int idx = 0; idx < mUiccSlots.length; idx++) {
                if (mUiccSlots[idx] != null && cardId.equals(mUiccSlots[idx].getIccId())) {
+10 −3
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ public class EuiccCard extends UiccCard {

    private final ApduSender mApduSender;
    private final Object mLock = new Object();
    private final RegistrantList mEidReadyRegistrants = new RegistrantList();
    private RegistrantList mEidReadyRegistrants;
    private EuiccSpecVersion mSpecVersion;
    private volatile String mEid;

@@ -133,6 +133,9 @@ public class EuiccCard extends UiccCard {
        if (mEid != null) {
            r.notifyRegistrant(new AsyncResult(null, null, null));
        } else {
            if (mEidReadyRegistrants == null) {
                mEidReadyRegistrants = new RegistrantList();
            }
            mEidReadyRegistrants.add(r);
        }
    }
@@ -141,8 +144,10 @@ public class EuiccCard extends UiccCard {
     * Unregisters to be notified when EID is ready.
     */
    public void unregisterForEidReady(Handler h) {
        if (mEidReadyRegistrants != null) {
            mEidReadyRegistrants.remove(h);
        }
    }

    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
    protected void loadEidAndNotifyRegistrants() {
@@ -150,8 +155,10 @@ public class EuiccCard extends UiccCard {
        AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() {
            @Override
            public void onResult(String result) {
                if (mEidReadyRegistrants != null) {
                    mEidReadyRegistrants.notifyRegistrants(new AsyncResult(null, null, null));
                }
            }

            @Override
            public void onException(Throwable e) {