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

Commit 23f96c33 authored by Malcolm Chen's avatar Malcolm Chen Committed by Automerger Merge Worker
Browse files

When disabling pSIM, make sure to trail 'F's when comparing iccid. am: e2a118de am: c89a7ea1

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/11726583

Change-Id: I3e565e014d956b34ae8ba92d6ecbbca7a5221b01
parents bb1b6e72 c89a7ea1
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -3714,13 +3714,15 @@ public class SubscriptionController extends ISub.Stub {
        if (slotsInfo == null) return false;
        for (int i = 0; i < slotsInfo.length; i++) {
            UiccSlotInfo curSlotInfo = slotsInfo[i];
            if (curSlotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT
                    && TextUtils.equals(curSlotInfo.getCardId(), info.getCardString())) {
            if (curSlotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT) {
                if (TextUtils.equals(IccUtils.stripTrailingFs(curSlotInfo.getCardId()),
                        IccUtils.stripTrailingFs(info.getCardString()))) {
                    slotInfo = curSlotInfo;
                    physicalSlotIndex = i;
                    break;
                }
            }
        }

        // Can't find the existing SIM.
        if (slotInfo == null) return false;
+25 −1
Original line number Diff line number Diff line
@@ -26,7 +26,9 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.atLeast;
@@ -42,6 +44,7 @@ import android.content.ContentValues;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.ParcelUuid;
import android.os.UserHandle;
import android.provider.Settings;
@@ -86,6 +89,8 @@ public class SubscriptionControllerTest extends TelephonyTest {
    private MultiSimSettingController mMultiSimSettingControllerMock;
    @Mock
    private ISetOpportunisticDataCallback mSetOpptDataCallback;
    @Mock
    private Handler mHandler;

    private static final String MAC_ADDRESS_PREFIX = "mac_";
    private static final String DISPLAY_NAME_PREFIX = "my_phone_";
@@ -1453,7 +1458,11 @@ public class SubscriptionControllerTest extends TelephonyTest {


    private UiccSlotInfo getFakeUiccSlotInfo(boolean active, int logicalSlotIndex) {
        return new UiccSlotInfo(active, false, "fake card Id",
        return getFakeUiccSlotInfo(active, logicalSlotIndex, "fake card Id");
    }

    private UiccSlotInfo getFakeUiccSlotInfo(boolean active, int logicalSlotIndex, String cardId) {
        return new UiccSlotInfo(active, false, cardId,
                UiccSlotInfo.CARD_STATE_INFO_PRESENT, logicalSlotIndex, true, true);
    }

@@ -1534,4 +1543,19 @@ public class SubscriptionControllerTest extends TelephonyTest {
        assertEquals(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                mSubscriptionControllerUT.getPreferredDataSubscriptionId());
    }

    @Test
    public void testSetSubscriptionEnabled_disableActivePsim_cardIdWithTrailingF() {
        String iccId = "123F";
        mSubscriptionControllerUT.addSubInfoRecord(iccId, 0);
        mSubscriptionControllerUT.registerForUiccAppsEnabled(mHandler, 0, null, false);
        UiccSlotInfo slot = getFakeUiccSlotInfo(true, 0, iccId + "FF");
        UiccSlotInfo[] uiccSlotInfos = {slot};
        doReturn(uiccSlotInfos).when(mTelephonyManager).getUiccSlotsInfo();

        mSubscriptionControllerUT.setSubscriptionEnabled(false, 1);
        verify(mHandler).sendMessageAtTime(any(), anyLong());
        assertFalse(mSubscriptionControllerUT.getActiveSubscriptionInfo(
                1, mContext.getOpPackageName(), null).areUiccApplicationsEnabled());
    }
}