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

Commit c985d16a authored by Malcolm Chen's avatar Malcolm Chen
Browse files

Hidden subscription will not be returned in getActiveSubscriptionInfoList.

By default, grouped carrier opportunistic subscriptions will no longer
be returned in getActiveSubscriptionInfoList. For internal places where
needs to see hidden subscriptions, we'll use a separate API to get them.

Bug: 121396526
Test: manual
Change-Id: I212be5fb69e172f53fbd382ff4c2374931a555eb
Merged-In: I212be5fb69e172f53fbd382ff4c2374931a555eb
parent 436e5e29
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -17,24 +17,24 @@
package com.android.internal.telephony;

import android.content.ContentProvider;
import android.content.UriMatcher;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.MergeCursor;
import android.database.MatrixCursor;
import android.database.MergeCursor;
import android.net.Uri;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
import android.telephony.Rlog;

import java.util.List;

import com.android.internal.telephony.uicc.AdnRecord;
import com.android.internal.telephony.uicc.IccConstants;

import java.util.List;


/**
 * {@hide}
@@ -121,7 +121,8 @@ public class IccProvider extends ContentProvider {

    private Cursor loadAllSimContacts(int efType) {
        Cursor [] result;
        List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
        List<SubscriptionInfo> subInfoList = mSubscriptionManager
                .getActiveSubscriptionInfoList(false);

        if ((subInfoList == null) || (subInfoList.size() == 0)) {
            result = new Cursor[0];
+4 −2
Original line number Diff line number Diff line
@@ -1163,7 +1163,8 @@ public class EuiccController extends IEuiccController.Stub {
    // Checks whether the caller can manage the active embedded subscription on the SIM with the
    // given cardId.
    private boolean canManageActiveSubscriptionOnTargetSim(int cardId, String callingPackage) {
        List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
        List<SubscriptionInfo> subInfoList = mSubscriptionManager
                .getActiveSubscriptionInfoList(/* userVisibleonly */false);
        if (subInfoList == null || subInfoList.size() == 0) {
            // No active subscription on any SIM.
            return false;
@@ -1190,7 +1191,8 @@ public class EuiccController extends IEuiccController.Stub {
    // For a single-active subscription phone, checks whether the caller can manage any active
    // embedded subscription.
    private boolean canManageSubscriptionOnTargetSim(int cardId, String callingPackage) {
        List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
        List<SubscriptionInfo> subInfoList = mSubscriptionManager
                .getActiveSubscriptionInfoList(/* userVisibleonly */false);
        // No active subscription on any SIM.
        if (subInfoList == null || subInfoList.size() == 0) {
            return false;
+2 −2
Original line number Diff line number Diff line
@@ -983,7 +983,7 @@ public class EuiccControllerTest extends TelephonyTest {
                false, "", false, false, 0, 0, 0);
        when(mSubscriptionManager.canManageSubscription(subInfo, PACKAGE_NAME)).thenReturn(
                hasPrivileges);
        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
        when(mSubscriptionManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(
                Collections.singletonList(subInfo));
    }

@@ -1011,7 +1011,7 @@ public class EuiccControllerTest extends TelephonyTest {
        when(mSubscriptionManager.canManageSubscription(subInfo2, PACKAGE_NAME)).thenReturn(
                hasPrivileges);
        ArrayList<SubscriptionInfo> subInfos = new ArrayList<>(Arrays.asList(subInfo1, subInfo2));
        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(subInfos);
        when(mSubscriptionManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(subInfos);
    }

    private void prepareOperationSubscription(boolean hasPrivileges) throws Exception {
+3 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.internal.telephony.ims;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
@@ -193,7 +194,7 @@ public class MmTelFeatureConnectionTest extends TelephonyTest {

        // Simulate subscriptions changed, where testSub1 is no longer active
        doReturn(createSubscriptionInfoList(new int[] {testSub2, testSub3}))
                .when(mSubscriptionManager).getActiveSubscriptionInfoList();
                .when(mSubscriptionManager).getActiveSubscriptionInfoList(anyBoolean());
        mCallbackManagerUT.mSubChangedListener.onSubscriptionsChanged();
        assertFalse(mCallbackManagerUT.doesCallbackExist(testCallback1));
        // verify that the subscription changed listener is not removed, since we still have a
@@ -220,7 +221,7 @@ public class MmTelFeatureConnectionTest extends TelephonyTest {

        // Simulate subscriptions changed, where testSub1 is no longer active
        doReturn(createSubscriptionInfoList(new int[] {testSub2}))
                .when(mSubscriptionManager).getActiveSubscriptionInfoList();
                .when(mSubscriptionManager).getActiveSubscriptionInfoList(anyBoolean());
        mCallbackManagerUT.mSubChangedListener.onSubscriptionsChanged();
        assertFalse(mCallbackManagerUT.doesCallbackExist(testCallback1));
        // verify that the subscription listener is removed, since the only active callback has been