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

Commit 486dc86c authored by Jiuyu Sun's avatar Jiuyu Sun Committed by Android (Google) Code Review
Browse files

Merge "Fix issues on EuiccCard constructor."

parents c473ed1d 825221b6
Loading
Loading
Loading
Loading
+269 −27
Original line number Original line Diff line number Diff line
@@ -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;
    }
    }


@@ -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
@@ -214,7 +225,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getAllProfiles(cardCb, mEuiccMainThreadHandler);

        card.getAllProfiles(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -241,7 +263,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                        }
                    }
                    }
                };
                };
        getEuiccCard(cardId).getProfile(iccid, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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) {
@@ -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
@@ -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
@@ -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
@@ -312,7 +356,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getProfile(iccid, profileCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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) {
@@ -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
@@ -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) {
@@ -366,7 +432,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).deleteProfile(iccid, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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) {
@@ -393,7 +470,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).resetMemory(options, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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) {
@@ -420,7 +508,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler);

        card.getDefaultSmdpAddress(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -447,7 +546,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getSmdsAddress(cardCb, mEuiccMainThreadHandler);

        card.getSmdsAddress(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -474,7 +584,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).setDefaultSmdpAddress(address, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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
@@ -502,7 +623,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getRulesAuthTable(cardCb, mEuiccMainThreadHandler);

        card.getRulesAuthTable(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -529,7 +661,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getEuiccChallenge(cardCb, mEuiccMainThreadHandler);

        card.getEuiccChallenge(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -556,7 +699,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getEuiccInfo1(cardCb, mEuiccMainThreadHandler);

        card.getEuiccInfo1(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -583,7 +737,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).getEuiccInfo2(cardCb, mEuiccMainThreadHandler);

        card.getEuiccInfo2(cardCb, mEuiccMainThreadHandler);
    }
    }


    @Override
    @Override
@@ -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) {
@@ -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
@@ -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) {
@@ -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
@@ -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) {
@@ -668,8 +855,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).loadBoundProfilePackage(boundProfilePackage, cardCb,

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


    @Override
    @Override
@@ -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) {
@@ -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
@@ -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
@@ -724,7 +932,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                }
                }
            }
            }
        };
        };
        getEuiccCard(cardId).listNotifications(events, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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
@@ -752,7 +971,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                        }
                    }
                    }
                };
                };
        getEuiccCard(cardId).retrieveNotificationList(events, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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
@@ -780,7 +1010,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                        }
                    }
                    }
                };
                };
        getEuiccCard(cardId).retrieveNotification(seqNumber, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
@@ -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) {
@@ -808,7 +1049,8 @@ public class EuiccCardController extends IEuiccCardController.Stub {
                        }
                        }
                    }
                    }
                };
                };
        getEuiccCard(cardId).removeNotificationFromList(seqNumber, cardCb, mEuiccMainThreadHandler);

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


    @Override
    @Override
+2 −6
Original line number Original line Diff line number Diff line
@@ -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())) {
+10 −3
Original line number Original line Diff line number Diff line
@@ -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;


@@ -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);
        }
        }
    }
    }
@@ -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() {
@@ -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) {