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

Commit a082f12e authored by Amit Mahajan's avatar Amit Mahajan Committed by Automerger Merge Worker
Browse files

Update comparison of new slot status with last status. am: 4c54bc06

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

Change-Id: I66ccb84c2f27a68ad68034a7b898e4cf2fa57a52
parents 5582f336 4c54bc06
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -1104,12 +1104,16 @@ public class UiccController extends Handler {
                options.toBundle());
    }

    private boolean slotStatusChanged(ArrayList<IccSlotStatus> slotStatusList) {
    /**
     * Check if slot status has changed from the last received one
     */
    @VisibleForTesting
    public boolean slotStatusChanged(ArrayList<IccSlotStatus> slotStatusList) {
        if (sLastSlotStatus == null || sLastSlotStatus.size() != slotStatusList.size()) {
            return true;
        }
        for (IccSlotStatus iccSlotStatus : slotStatusList) {
            if (!sLastSlotStatus.contains(iccSlotStatus)) {
        for (int i = 0; i < slotStatusList.size(); i++) {
            if (!sLastSlotStatus.get(i).equals(slotStatusList.get(i))) {
                return true;
            }
        }
+6 −0
Original line number Diff line number Diff line
@@ -423,6 +423,12 @@ public class ContextFixture implements TestFixture<Context> {
            sendBroadcast(intent);
        }

        @Override
        public void sendBroadcast(Intent intent, String receiverPermission, Bundle initialExtras) {
            logd("sendBroadcast called for " + intent.getAction());
            sendBroadcast(intent);
        }

        @Override
        public void sendOrderedBroadcast(Intent intent, String receiverPermission) {
            logd("sendOrderedBroadcast called for " + intent.getAction());
+29 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.internal.telephony.uicc;
import static junit.framework.Assert.fail;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -634,4 +635,32 @@ public class UiccControllerTest extends TelephonyTest {
        assertEquals(mUiccControllerUT.convertToPublicCardId(knownEidFromApdu),
                mUiccControllerUT.getCardIdForDefaultEuicc());
    }

    @Test
    public void testSlotStatusChanged() {
        // simulate slot status loaded so that the UiccController sets the last slot status
        IccSlotStatus iss1 = new IccSlotStatus();
        iss1.setSlotState(1 /* active */);
        iss1.eid = "eid1";
        IccSlotStatus iss2 = new IccSlotStatus();
        iss2.setSlotState(1 /* active */);
        iss2.eid = "eid2";
        ArrayList<IccSlotStatus> status = new ArrayList<IccSlotStatus>();
        status.add(iss1);
        status.add(iss2);
        AsyncResult ar = new AsyncResult(null, status, null);
        Message msg = Message.obtain(mUiccControllerUT, EVENT_GET_SLOT_STATUS_DONE, ar);
        mUiccControllerUT.handleMessage(msg);
        processAllMessages();

        assertFalse(mUiccControllerUT.slotStatusChanged(status));

        // change the order of the IccSlotStatus in the list
        status = new ArrayList<>();
        status.add(iss2);
        status.add(iss1);

        // status should be treated different from last status
        assertTrue(mUiccControllerUT.slotStatusChanged(status));
    }
}