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

Commit f9916b6f authored by Pengquan Meng's avatar Pengquan Meng Committed by Xiangyu/Malcolm Chen
Browse files

Fix getAvailableSubscriotion issue.

Even when EuiccManager is not enabled, getAvailableSubscriotion shouldn't
return null. It should return available subscriptions from physical SIMs.

Test: current test
Bug: 123364105
Change-Id: Iebf83232360efec3078fc8c2019040514a3d3151
parent b74e4b34
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -770,19 +770,17 @@ public class SubscriptionController extends ISub.Stub {
        // Now that all security checks pass, perform the operation as ourselves.
        final long identity = Binder.clearCallingIdentity();
        try {
            String selection = SubscriptionManager.SIM_SLOT_INDEX + ">=0 OR "
                    + SubscriptionManager.SUBSCRIPTION_TYPE + "="
                    + SubscriptionManager.SUBSCRIPTION_TYPE_REMOTE_SIM;

            EuiccManager euiccManager =
                    (EuiccManager) mContext.getSystemService(Context.EUICC_SERVICE);
            if (!euiccManager.isEnabled()) {
                if (DBG) logdl("[getAvailableSubInfoList] Embedded subscriptions are disabled");
                return null;
            if (euiccManager.isEnabled()) {
                selection += " OR " + SubscriptionManager.IS_EMBEDDED + "=1";
            }

            List<SubscriptionInfo> subList = getSubInfo(
                    SubscriptionManager.SIM_SLOT_INDEX + ">=0 OR "
                            + SubscriptionManager.IS_EMBEDDED + "=1 OR "
                            + SubscriptionManager.SUBSCRIPTION_TYPE + "="
                            + SubscriptionManager.SUBSCRIPTION_TYPE_REMOTE_SIM,
                    null);
            List<SubscriptionInfo> subList = getSubInfo(selection, null /* queryKey */);

            if (subList != null) {
                subList.sort(SUBSCRIPTION_INFO_COMPARATOR);