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

Commit af1e8860 authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by Gerrit Code Review
Browse files

Merge "When disabling pSIM, make sure to trail 'F's when comparing iccid."

parents 3a73dfe8 444b5025
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -3509,13 +3509,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
@@ -24,6 +24,8 @@ 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.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doReturn;
@@ -36,6 +38,7 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.ParcelUuid;
import android.os.UserHandle;
import android.provider.Settings;
@@ -79,6 +82,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_";
@@ -1067,7 +1072,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);
    }

@@ -1112,4 +1121,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());
    }
}