Loading src/java/com/android/internal/telephony/euicc/EuiccCardController.java +269 −27 Original line number Original line Diff line number Diff line Loading @@ -179,6 +179,7 @@ public class EuiccCardController extends IEuiccCardController.Stub { return (EuiccCard) controller.getUiccCardForSlot(slotId); return (EuiccCard) controller.getUiccCardForSlot(slotId); } } } } Log.e(TAG, "EuiccCard is null. CardId : " + cardId); return null; return null; } } Loading @@ -194,6 +195,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetAllProfilesCallback callback) { IGetAllProfilesCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccProfileInfo[]> cardCb = new AsyncResultCallback<EuiccProfileInfo[]>() { new AsyncResultCallback<EuiccProfileInfo[]>() { @Override @Override Loading @@ -214,7 +225,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getAllProfiles(cardCb, mEuiccMainThreadHandler); card.getAllProfiles(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -222,6 +234,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetProfileCallback callback) { IGetProfileCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<EuiccProfileInfo> cardCb = new AsyncResultCallback<EuiccProfileInfo>() { @Override @Override public void onResult(EuiccProfileInfo result) { public void onResult(EuiccProfileInfo result) { Loading @@ -241,7 +263,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getProfile(iccid, cardCb, mEuiccMainThreadHandler); card.getProfile(iccid, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -249,6 +272,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IDisableProfileCallback callback) { IDisableProfileCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -268,7 +301,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).disableProfile(iccid, refresh, cardCb, mEuiccMainThreadHandler); card.disableProfile(iccid, refresh, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -276,6 +310,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { ISwitchToProfileCallback callback) { ISwitchToProfileCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccProfileInfo> profileCb = new AsyncResultCallback<EuiccProfileInfo>() { new AsyncResultCallback<EuiccProfileInfo>() { @Override @Override Loading @@ -299,8 +343,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId) .switchToProfile(iccid, refresh, switchCb, mEuiccMainThreadHandler); card.switchToProfile(iccid, refresh, switchCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -312,7 +356,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getProfile(iccid, profileCb, mEuiccMainThreadHandler); card.getProfile(iccid, profileCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -320,6 +365,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { ISetNicknameCallback callback) { ISetNicknameCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -339,7 +394,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).setNickname(iccid, nickname, cardCb, mEuiccMainThreadHandler); card.setNickname(iccid, nickname, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -347,6 +403,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IDeleteProfileCallback callback) { IDeleteProfileCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -366,7 +432,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).deleteProfile(iccid, cardCb, mEuiccMainThreadHandler); card.deleteProfile(iccid, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -374,6 +441,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccCardManager.ResetOption int options, IResetMemoryCallback callback) { @EuiccCardManager.ResetOption int options, IResetMemoryCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -393,7 +470,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).resetMemory(options, cardCb, mEuiccMainThreadHandler); card.resetMemory(options, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -401,6 +479,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetDefaultSmdpAddressCallback callback) { IGetDefaultSmdpAddressCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { @Override @Override public void onResult(String result) { public void onResult(String result) { Loading @@ -420,7 +508,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler); card.getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -428,6 +517,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetSmdsAddressCallback callback) { IGetSmdsAddressCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { @Override @Override public void onResult(String result) { public void onResult(String result) { Loading @@ -447,7 +546,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getSmdsAddress(cardCb, mEuiccMainThreadHandler); card.getSmdsAddress(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -455,6 +555,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { ISetDefaultSmdpAddressCallback callback) { ISetDefaultSmdpAddressCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -474,7 +584,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler); card.setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -482,6 +593,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetRulesAuthTableCallback callback) { IGetRulesAuthTableCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccRulesAuthTable> cardCb = new AsyncResultCallback<EuiccRulesAuthTable>() { new AsyncResultCallback<EuiccRulesAuthTable>() { @Override @Override Loading @@ -502,7 +623,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getRulesAuthTable(cardCb, mEuiccMainThreadHandler); card.getRulesAuthTable(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -510,6 +632,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetEuiccChallengeCallback callback) { IGetEuiccChallengeCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -529,7 +661,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getEuiccChallenge(cardCb, mEuiccMainThreadHandler); card.getEuiccChallenge(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -537,6 +670,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetEuiccInfo1Callback callback) { IGetEuiccInfo1Callback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -556,7 +699,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getEuiccInfo1(cardCb, mEuiccMainThreadHandler); card.getEuiccInfo1(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -564,6 +708,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetEuiccInfo2Callback callback) { IGetEuiccInfo2Callback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -583,7 +737,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getEuiccInfo2(cardCb, mEuiccMainThreadHandler); card.getEuiccInfo2(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -592,6 +747,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { byte[] serverCertificate, IAuthenticateServerCallback callback) { byte[] serverCertificate, IAuthenticateServerCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -611,8 +776,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 @Override Loading @@ -621,6 +787,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IPrepareDownloadCallback callback) { IPrepareDownloadCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -640,8 +816,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 @Override Loading @@ -649,6 +826,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { byte[] boundProfilePackage, ILoadBoundProfilePackageCallback callback) { byte[] boundProfilePackage, ILoadBoundProfilePackageCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -668,8 +855,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).loadBoundProfilePackage(boundProfilePackage, cardCb, mEuiccMainThreadHandler); card.loadBoundProfilePackage(boundProfilePackage, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -677,6 +864,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccCardManager.CancelReason int reason, ICancelSessionCallback callback) { @EuiccCardManager.CancelReason int reason, ICancelSessionCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -696,7 +893,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).cancelSession(transactionId, reason, cardCb, mEuiccMainThreadHandler); card.cancelSession(transactionId, reason, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -704,6 +902,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccNotification.Event int events, IListNotificationsCallback callback) { @EuiccNotification.Event int events, IListNotificationsCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccNotification[]> cardCb = new AsyncResultCallback<EuiccNotification[]>() { new AsyncResultCallback<EuiccNotification[]>() { @Override @Override Loading @@ -724,7 +932,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).listNotifications(events, cardCb, mEuiccMainThreadHandler); card.listNotifications(events, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -732,6 +941,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccNotification.Event int events, IRetrieveNotificationListCallback callback) { @EuiccNotification.Event int events, IRetrieveNotificationListCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccNotification[]> cardCb = new AsyncResultCallback<EuiccNotification[]>() { new AsyncResultCallback<EuiccNotification[]>() { @Override @Override Loading @@ -752,7 +971,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler); card.retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -760,6 +980,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IRetrieveNotificationCallback callback) { IRetrieveNotificationCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccNotification> cardCb = new AsyncResultCallback<EuiccNotification>() { new AsyncResultCallback<EuiccNotification>() { @Override @Override Loading @@ -780,7 +1010,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler); card.retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -788,6 +1019,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IRemoveNotificationFromListCallback callback) { IRemoveNotificationFromListCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -808,7 +1049,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler); card.removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading src/java/com/android/internal/telephony/uicc/UiccController.java +2 −6 Original line number Original line Diff line number Diff line Loading @@ -303,15 +303,11 @@ public class UiccController extends Handler { for (int idx = 0; idx < mUiccSlots.length; idx++) { for (int idx = 0; idx < mUiccSlots.length; idx++) { if (mUiccSlots[idx] != null) { if (mUiccSlots[idx] != null) { UiccCard uiccCard = mUiccSlots[idx].getUiccCard(); UiccCard uiccCard = mUiccSlots[idx].getUiccCard(); if (uiccCard != null) { if (uiccCard != null && cardId.equals(uiccCard.getCardId())) { // todo: uncomment this once getCardId() is added //if (cardId.equals(uiccCard.getCardId())) { if (false) { return idx; return idx; } } } } } } } // if a match is not found, do a lookup based on ICCID // if a match is not found, do a lookup based on ICCID for (int idx = 0; idx < mUiccSlots.length; idx++) { for (int idx = 0; idx < mUiccSlots.length; idx++) { if (mUiccSlots[idx] != null && cardId.equals(mUiccSlots[idx].getIccId())) { if (mUiccSlots[idx] != null && cardId.equals(mUiccSlots[idx].getIccId())) { Loading src/java/com/android/internal/telephony/uicc/euicc/EuiccCard.java +10 −3 Original line number Original line Diff line number Diff line Loading @@ -112,7 +112,7 @@ public class EuiccCard extends UiccCard { private final ApduSender mApduSender; private final ApduSender mApduSender; private final Object mLock = new Object(); private final Object mLock = new Object(); private final RegistrantList mEidReadyRegistrants = new RegistrantList(); private RegistrantList mEidReadyRegistrants; private EuiccSpecVersion mSpecVersion; private EuiccSpecVersion mSpecVersion; private volatile String mEid; private volatile String mEid; Loading @@ -133,6 +133,9 @@ public class EuiccCard extends UiccCard { if (mEid != null) { if (mEid != null) { r.notifyRegistrant(new AsyncResult(null, null, null)); r.notifyRegistrant(new AsyncResult(null, null, null)); } else { } else { if (mEidReadyRegistrants == null) { mEidReadyRegistrants = new RegistrantList(); } mEidReadyRegistrants.add(r); mEidReadyRegistrants.add(r); } } } } Loading @@ -141,8 +144,10 @@ public class EuiccCard extends UiccCard { * Unregisters to be notified when EID is ready. * Unregisters to be notified when EID is ready. */ */ public void unregisterForEidReady(Handler h) { public void unregisterForEidReady(Handler h) { if (mEidReadyRegistrants != null) { mEidReadyRegistrants.remove(h); mEidReadyRegistrants.remove(h); } } } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) protected void loadEidAndNotifyRegistrants() { protected void loadEidAndNotifyRegistrants() { Loading @@ -150,8 +155,10 @@ public class EuiccCard extends UiccCard { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { @Override @Override public void onResult(String result) { public void onResult(String result) { if (mEidReadyRegistrants != null) { mEidReadyRegistrants.notifyRegistrants(new AsyncResult(null, null, null)); mEidReadyRegistrants.notifyRegistrants(new AsyncResult(null, null, null)); } } } @Override @Override public void onException(Throwable e) { public void onException(Throwable e) { Loading Loading
src/java/com/android/internal/telephony/euicc/EuiccCardController.java +269 −27 Original line number Original line Diff line number Diff line Loading @@ -179,6 +179,7 @@ public class EuiccCardController extends IEuiccCardController.Stub { return (EuiccCard) controller.getUiccCardForSlot(slotId); return (EuiccCard) controller.getUiccCardForSlot(slotId); } } } } Log.e(TAG, "EuiccCard is null. CardId : " + cardId); return null; return null; } } Loading @@ -194,6 +195,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetAllProfilesCallback callback) { IGetAllProfilesCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccProfileInfo[]> cardCb = new AsyncResultCallback<EuiccProfileInfo[]>() { new AsyncResultCallback<EuiccProfileInfo[]>() { @Override @Override Loading @@ -214,7 +225,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getAllProfiles(cardCb, mEuiccMainThreadHandler); card.getAllProfiles(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -222,6 +234,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetProfileCallback callback) { IGetProfileCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<EuiccProfileInfo> cardCb = new AsyncResultCallback<EuiccProfileInfo>() { @Override @Override public void onResult(EuiccProfileInfo result) { public void onResult(EuiccProfileInfo result) { Loading @@ -241,7 +263,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getProfile(iccid, cardCb, mEuiccMainThreadHandler); card.getProfile(iccid, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -249,6 +272,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IDisableProfileCallback callback) { IDisableProfileCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -268,7 +301,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).disableProfile(iccid, refresh, cardCb, mEuiccMainThreadHandler); card.disableProfile(iccid, refresh, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -276,6 +310,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { ISwitchToProfileCallback callback) { ISwitchToProfileCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccProfileInfo> profileCb = new AsyncResultCallback<EuiccProfileInfo>() { new AsyncResultCallback<EuiccProfileInfo>() { @Override @Override Loading @@ -299,8 +343,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId) .switchToProfile(iccid, refresh, switchCb, mEuiccMainThreadHandler); card.switchToProfile(iccid, refresh, switchCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -312,7 +356,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getProfile(iccid, profileCb, mEuiccMainThreadHandler); card.getProfile(iccid, profileCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -320,6 +365,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { ISetNicknameCallback callback) { ISetNicknameCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -339,7 +394,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).setNickname(iccid, nickname, cardCb, mEuiccMainThreadHandler); card.setNickname(iccid, nickname, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -347,6 +403,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IDeleteProfileCallback callback) { IDeleteProfileCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -366,7 +432,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).deleteProfile(iccid, cardCb, mEuiccMainThreadHandler); card.deleteProfile(iccid, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -374,6 +441,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccCardManager.ResetOption int options, IResetMemoryCallback callback) { @EuiccCardManager.ResetOption int options, IResetMemoryCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -393,7 +470,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).resetMemory(options, cardCb, mEuiccMainThreadHandler); card.resetMemory(options, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -401,6 +479,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetDefaultSmdpAddressCallback callback) { IGetDefaultSmdpAddressCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { @Override @Override public void onResult(String result) { public void onResult(String result) { Loading @@ -420,7 +508,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler); card.getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -428,6 +517,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetSmdsAddressCallback callback) { IGetSmdsAddressCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { @Override @Override public void onResult(String result) { public void onResult(String result) { Loading @@ -447,7 +546,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getSmdsAddress(cardCb, mEuiccMainThreadHandler); card.getSmdsAddress(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -455,6 +555,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { ISetDefaultSmdpAddressCallback callback) { ISetDefaultSmdpAddressCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -474,7 +584,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler); card.setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -482,6 +593,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetRulesAuthTableCallback callback) { IGetRulesAuthTableCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccRulesAuthTable> cardCb = new AsyncResultCallback<EuiccRulesAuthTable>() { new AsyncResultCallback<EuiccRulesAuthTable>() { @Override @Override Loading @@ -502,7 +623,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getRulesAuthTable(cardCb, mEuiccMainThreadHandler); card.getRulesAuthTable(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -510,6 +632,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetEuiccChallengeCallback callback) { IGetEuiccChallengeCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -529,7 +661,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getEuiccChallenge(cardCb, mEuiccMainThreadHandler); card.getEuiccChallenge(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -537,6 +670,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetEuiccInfo1Callback callback) { IGetEuiccInfo1Callback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -556,7 +699,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getEuiccInfo1(cardCb, mEuiccMainThreadHandler); card.getEuiccInfo1(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -564,6 +708,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IGetEuiccInfo2Callback callback) { IGetEuiccInfo2Callback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -583,7 +737,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).getEuiccInfo2(cardCb, mEuiccMainThreadHandler); card.getEuiccInfo2(cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -592,6 +747,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { byte[] serverCertificate, IAuthenticateServerCallback callback) { byte[] serverCertificate, IAuthenticateServerCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -611,8 +776,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 @Override Loading @@ -621,6 +787,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IPrepareDownloadCallback callback) { IPrepareDownloadCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -640,8 +816,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 @Override Loading @@ -649,6 +826,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { byte[] boundProfilePackage, ILoadBoundProfilePackageCallback callback) { byte[] boundProfilePackage, ILoadBoundProfilePackageCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -668,8 +855,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).loadBoundProfilePackage(boundProfilePackage, cardCb, mEuiccMainThreadHandler); card.loadBoundProfilePackage(boundProfilePackage, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -677,6 +864,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccCardManager.CancelReason int reason, ICancelSessionCallback callback) { @EuiccCardManager.CancelReason int reason, ICancelSessionCallback callback) { checkCallingPackage(callingPackage); 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[]>() { AsyncResultCallback<byte[]> cardCb = new AsyncResultCallback<byte[]>() { @Override @Override public void onResult(byte[] result) { public void onResult(byte[] result) { Loading @@ -696,7 +893,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).cancelSession(transactionId, reason, cardCb, mEuiccMainThreadHandler); card.cancelSession(transactionId, reason, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -704,6 +902,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccNotification.Event int events, IListNotificationsCallback callback) { @EuiccNotification.Event int events, IListNotificationsCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccNotification[]> cardCb = new AsyncResultCallback<EuiccNotification[]>() { new AsyncResultCallback<EuiccNotification[]>() { @Override @Override Loading @@ -724,7 +932,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).listNotifications(events, cardCb, mEuiccMainThreadHandler); card.listNotifications(events, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -732,6 +941,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { @EuiccNotification.Event int events, IRetrieveNotificationListCallback callback) { @EuiccNotification.Event int events, IRetrieveNotificationListCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccNotification[]> cardCb = new AsyncResultCallback<EuiccNotification[]>() { new AsyncResultCallback<EuiccNotification[]>() { @Override @Override Loading @@ -752,7 +971,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler); card.retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -760,6 +980,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IRetrieveNotificationCallback callback) { IRetrieveNotificationCallback callback) { checkCallingPackage(callingPackage); 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 = AsyncResultCallback<EuiccNotification> cardCb = new AsyncResultCallback<EuiccNotification>() { new AsyncResultCallback<EuiccNotification>() { @Override @Override Loading @@ -780,7 +1010,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler); card.retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading @@ -788,6 +1019,16 @@ public class EuiccCardController extends IEuiccCardController.Stub { IRemoveNotificationFromListCallback callback) { IRemoveNotificationFromListCallback callback) { checkCallingPackage(callingPackage); 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>() { AsyncResultCallback<Void> cardCb = new AsyncResultCallback<Void>() { @Override @Override public void onResult(Void result) { public void onResult(Void result) { Loading @@ -808,7 +1049,8 @@ public class EuiccCardController extends IEuiccCardController.Stub { } } } } }; }; getEuiccCard(cardId).removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler); card.removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler); } } @Override @Override Loading
src/java/com/android/internal/telephony/uicc/UiccController.java +2 −6 Original line number Original line Diff line number Diff line Loading @@ -303,15 +303,11 @@ public class UiccController extends Handler { for (int idx = 0; idx < mUiccSlots.length; idx++) { for (int idx = 0; idx < mUiccSlots.length; idx++) { if (mUiccSlots[idx] != null) { if (mUiccSlots[idx] != null) { UiccCard uiccCard = mUiccSlots[idx].getUiccCard(); UiccCard uiccCard = mUiccSlots[idx].getUiccCard(); if (uiccCard != null) { if (uiccCard != null && cardId.equals(uiccCard.getCardId())) { // todo: uncomment this once getCardId() is added //if (cardId.equals(uiccCard.getCardId())) { if (false) { return idx; return idx; } } } } } } } // if a match is not found, do a lookup based on ICCID // if a match is not found, do a lookup based on ICCID for (int idx = 0; idx < mUiccSlots.length; idx++) { for (int idx = 0; idx < mUiccSlots.length; idx++) { if (mUiccSlots[idx] != null && cardId.equals(mUiccSlots[idx].getIccId())) { if (mUiccSlots[idx] != null && cardId.equals(mUiccSlots[idx].getIccId())) { Loading
src/java/com/android/internal/telephony/uicc/euicc/EuiccCard.java +10 −3 Original line number Original line Diff line number Diff line Loading @@ -112,7 +112,7 @@ public class EuiccCard extends UiccCard { private final ApduSender mApduSender; private final ApduSender mApduSender; private final Object mLock = new Object(); private final Object mLock = new Object(); private final RegistrantList mEidReadyRegistrants = new RegistrantList(); private RegistrantList mEidReadyRegistrants; private EuiccSpecVersion mSpecVersion; private EuiccSpecVersion mSpecVersion; private volatile String mEid; private volatile String mEid; Loading @@ -133,6 +133,9 @@ public class EuiccCard extends UiccCard { if (mEid != null) { if (mEid != null) { r.notifyRegistrant(new AsyncResult(null, null, null)); r.notifyRegistrant(new AsyncResult(null, null, null)); } else { } else { if (mEidReadyRegistrants == null) { mEidReadyRegistrants = new RegistrantList(); } mEidReadyRegistrants.add(r); mEidReadyRegistrants.add(r); } } } } Loading @@ -141,8 +144,10 @@ public class EuiccCard extends UiccCard { * Unregisters to be notified when EID is ready. * Unregisters to be notified when EID is ready. */ */ public void unregisterForEidReady(Handler h) { public void unregisterForEidReady(Handler h) { if (mEidReadyRegistrants != null) { mEidReadyRegistrants.remove(h); mEidReadyRegistrants.remove(h); } } } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) protected void loadEidAndNotifyRegistrants() { protected void loadEidAndNotifyRegistrants() { Loading @@ -150,8 +155,10 @@ public class EuiccCard extends UiccCard { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { AsyncResultCallback<String> cardCb = new AsyncResultCallback<String>() { @Override @Override public void onResult(String result) { public void onResult(String result) { if (mEidReadyRegistrants != null) { mEidReadyRegistrants.notifyRegistrants(new AsyncResult(null, null, null)); mEidReadyRegistrants.notifyRegistrants(new AsyncResult(null, null, null)); } } } @Override @Override public void onException(Throwable e) { public void onException(Throwable e) { Loading