Loading src/java/com/android/internal/telephony/SubscriptionController.java +7 −5 Original line number Diff line number Diff line Loading @@ -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; Loading tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java +25 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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_"; Loading Loading @@ -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); } Loading Loading @@ -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()); } } Loading
src/java/com/android/internal/telephony/SubscriptionController.java +7 −5 Original line number Diff line number Diff line Loading @@ -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; Loading
tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java +25 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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_"; Loading Loading @@ -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); } Loading Loading @@ -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()); } }