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

Commit 66447abc authored by Jack Yu's avatar Jack Yu
Browse files

Fixed unexpected handover failure

When handover is ongoing, the normal setup
data failure should not also fail the pending
handover.

Fix: 190857629
Test: atest DcTrackerTest
Change-Id: I0219f05087b6ef68ad5ba96e8b1c8adc5f811283
parent 04485d81
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1646,7 +1646,9 @@ public class DcTracker extends Handler {

            if (DBG) log(str.toString());
            apnContext.requestLog(str.toString());
            if (requestType == REQUEST_TYPE_HANDOVER) {
                sendHandoverCompleteMessages(apnContext.getApnTypeBitmask(), false, false);
            }
            return;
        }

@@ -1671,8 +1673,10 @@ public class DcTracker extends Handler {
                String str = "trySetupData: X No APN found retValue=false";
                if (DBG) log(str);
                apnContext.requestLog(str);
                if (requestType == REQUEST_TYPE_HANDOVER) {
                    sendHandoverCompleteMessages(apnContext.getApnTypeBitmask(), false,
                            false);
                }
                return;
            } else {
                apnContext.setWaitingApns(waitingApns);
@@ -1683,7 +1687,8 @@ public class DcTracker extends Handler {
            }
        }

        if (!setupData(apnContext, radioTech, requestType)) {
        if (!setupData(apnContext, radioTech, requestType)
                && requestType == REQUEST_TYPE_HANDOVER) {
            sendHandoverCompleteMessages(apnContext.getApnTypeBitmask(), false, false);
        }
    }
+12 −0
Original line number Diff line number Diff line
@@ -2970,4 +2970,16 @@ public class DcTrackerTest extends TelephonyTest {
        // Ensure handover is not completed yet
        verify(handler, never()).sendMessageDelayed(any(), anyLong());
    }

    @Test
    public void testNormalRequestDoesNotFailHandoverRequest() {
        Handler handler = Mockito.mock(Handler.class);
        Message handoverCompleteMessage = Message.obtain(handler);
        addHandoverCompleteMsg(handoverCompleteMessage, ApnSetting.TYPE_IMS);
        initApns(ApnSetting.TYPE_IMS_STRING, new String[]{ApnSetting.TYPE_IMS_STRING});
        mDct.enableApn(ApnSetting.TYPE_IMS, DcTracker.REQUEST_TYPE_NORMAL, null);
        waitForLastHandlerAction(mDcTrackerTestHandler.getThreadHandler());
        // Ensure handover is not completed yet
        verify(handler, never()).sendMessageDelayed(any(), anyLong());
    }
}