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

Commit 58fb0cd3 authored by Hyosun Kim's avatar Hyosun Kim Committed by Android (Google) Code Review
Browse files

Merge "add overlay configs for last sos message connect and response timeout." into 24D1-dev

parents 2934e84b ef11df89
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ public class DatagramController {
    private long mDatagramWaitTimeForConnectedState;
    private long mModemImageSwitchingDuration;
    private boolean mWaitForDeviceAlignmentInDemoDatagram;
    private long mDatagramWaitTimeForConnectedStateForLastMessage;
    @GuardedBy("mLock")
    @SatelliteManager.SatelliteModemState
    private int mSatelltieModemState = SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN;
@@ -161,6 +162,8 @@ public class DatagramController {
        mModemImageSwitchingDuration = getSatelliteModemImageSwitchingDurationMillis();
        mWaitForDeviceAlignmentInDemoDatagram =
                getWaitForDeviceAlignmentInDemoDatagramFromResources();
        mDatagramWaitTimeForConnectedStateForLastMessage =
                getDatagramWaitForConnectedStateForLastMessageTimeoutMillis();
        mDemoModeDatagramList = new ArrayList<>();
    }

@@ -447,13 +450,17 @@ public class DatagramController {
    }

    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
    public long getDatagramWaitTimeForConnectedState() {
    public long getDatagramWaitTimeForConnectedState(boolean isLastSosMessage) {
        synchronized (mLock) {
            long timeout = isLastSosMessage ? mDatagramWaitTimeForConnectedStateForLastMessage :
                    mDatagramWaitTimeForConnectedState;
            logd("getDatagramWaitTimeForConnectedState: isLastSosMessage=" + isLastSosMessage
                    + ", timeout=" + timeout + ", modemState=" + mSatelltieModemState);
            if (mSatelltieModemState == SATELLITE_MODEM_STATE_OFF
                    || mSatelltieModemState == SATELLITE_MODEM_STATE_IDLE) {
                return (mDatagramWaitTimeForConnectedState + mModemImageSwitchingDuration);
                return (timeout + mModemImageSwitchingDuration);
            }
            return mDatagramWaitTimeForConnectedState;
            return timeout;
        }
    }

@@ -553,6 +560,11 @@ public class DatagramController {
                R.integer.config_satellite_modem_image_switching_duration_millis);
    }

    private long getDatagramWaitForConnectedStateForLastMessageTimeoutMillis() {
        return mContext.getResources().getInteger(
                R.integer.config_datagram_wait_for_connected_state_for_last_message_timeout_millis);
    }

    /**
     * This API can be used by only CTS to override the cached value for the device overlay config
     * value : config_send_satellite_datagram_to_modem_in_demo_mode, which determines whether
+16 −3
Original line number Diff line number Diff line
@@ -104,6 +104,7 @@ public class DatagramDispatcher extends Handler {
            mPendingNonEmergencyDatagramsMap = new LinkedHashMap<>();

    private long mWaitTimeForDatagramSendingResponse;
    private long mWaitTimeForDatagramSendingForLastMessageResponse;
    @SatelliteManager.DatagramType
    private int mLastSendRequestDatagramType = DATAGRAM_TYPE_UNKNOWN;

@@ -142,6 +143,8 @@ public class DatagramDispatcher extends Handler {
            mSendingDatagramInProgress = false;
        }
        mWaitTimeForDatagramSendingResponse = getWaitForDatagramSendingResponseTimeoutMillis();
        mWaitTimeForDatagramSendingForLastMessageResponse =
                getWaitForDatagramSendingResponseForLastMessageTimeoutMillis();
    }

    private static final class DatagramDispatcherHandlerRequest {
@@ -680,7 +683,8 @@ public class DatagramDispatcher extends Handler {
        }
        sendMessageDelayed(obtainMessage(
                        EVENT_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMED_OUT, datagramArgs),
                mDatagramController.getDatagramWaitTimeForConnectedState());
                mDatagramController.getDatagramWaitTimeForConnectedState(
                        SatelliteServiceUtils.isLastSosMessage(datagramArgs.datagramType)));
    }

    private void stopDatagramWaitForConnectedStateTimer() {
@@ -709,9 +713,13 @@ public class DatagramDispatcher extends Handler {
            logd("WaitForDatagramSendingResponseTimer was already started");
            return;
        }
        long waitTime = SatelliteServiceUtils.isLastSosMessage(argument.datagramType)
                ? mWaitTimeForDatagramSendingForLastMessageResponse
                : mWaitTimeForDatagramSendingResponse;
        logd("startWaitForDatagramSendingResponseTimer: datagramType=" + argument.datagramType
                + ", waitTime=" + waitTime);
        sendMessageDelayed(obtainMessage(
                EVENT_WAIT_FOR_DATAGRAM_SENDING_RESPONSE_TIMED_OUT, argument),
                mWaitTimeForDatagramSendingResponse);
                EVENT_WAIT_FOR_DATAGRAM_SENDING_RESPONSE_TIMED_OUT, argument), waitTime);
    }

    private void stopWaitForDatagramSendingResponseTimer() {
@@ -760,6 +768,11 @@ public class DatagramDispatcher extends Handler {
                R.integer.config_wait_for_datagram_sending_response_timeout_millis);
    }

    private long getWaitForDatagramSendingResponseForLastMessageTimeoutMillis() {
        return mContext.getResources().getInteger(R.integer
                .config_wait_for_datagram_sending_response_for_last_message_timeout_millis);
    }

    private boolean shouldProcessEventSendSatelliteDatagramDone(
            @NonNull SendSatelliteDatagramArgument argument) {
        synchronized (mLock) {
+1 −1
Original line number Diff line number Diff line
@@ -818,7 +818,7 @@ public class DatagramReceiver extends Handler {
        }
        sendMessageDelayed(obtainMessage(
                        EVENT_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMED_OUT),
                mDatagramController.getDatagramWaitTimeForConnectedState());
                mDatagramController.getDatagramWaitTimeForConnectedState(false));
    }

    private void stopDatagramWaitForConnectedStateTimer() {
+13 −1
Original line number Diff line number Diff line
@@ -347,7 +347,9 @@ public class SatelliteServiceUtils {
    }

    /**
     *
     * Check if the datagramType is the sos message (DATAGRAM_TYPE_SOS_MESSAGE,
     * DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP,
     * DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED) or not
     */
    public static boolean isSosMessage(int datagramType) {
        return datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE
@@ -355,6 +357,16 @@ public class SatelliteServiceUtils {
                || datagramType == SatelliteManager.DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED;
    }

    /**
     * Check if the datagramType is the last sos message
     * (DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP or
     * DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED) or not
     */
    public static boolean isLastSosMessage(int datagramType) {
        return datagramType == SatelliteManager.DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP
                || datagramType == SatelliteManager.DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED;
    }

    /**
     * Return phone associated with phoneId 0.
     *
+183 −146
Original line number Diff line number Diff line
@@ -98,6 +98,12 @@ public class DatagramDispatcherTest extends TelephonyTest {
    private static final long TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS =
            TimeUnit.SECONDS.toMillis(60);
    private static final Long TIMEOUT_DATAGRAM_DELAY_IN_DEMO_MODE = TimeUnit.SECONDS.toMillis(10);
    private static final long
            TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_FOR_LAST_MESSAGE_TIMEOUT_MILLIS =
            TimeUnit.SECONDS.toMillis(60);
    private static final int
            TEST_WAIT_FOR_DATAGRAM_SENDING_RESPONSE_FOR_LAST_MESSAGE_TIMEOUT_MILLIS =
            (int) TimeUnit.SECONDS.toMillis(60);

    private TestDatagramDispatcher mDatagramDispatcherUT;

@@ -188,8 +194,11 @@ public class DatagramDispatcherTest extends TelephonyTest {
            clearInvocations(mMockSatelliteModemInterface);
            doReturn(true).when(mMockDatagramController)
                    .needsWaitingForSatelliteConnected(eq(datagramType));
            when(mMockDatagramController.getDatagramWaitTimeForConnectedState())
            when(mMockDatagramController.getDatagramWaitTimeForConnectedState(eq(false)))
                    .thenReturn(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
            when(mMockDatagramController.getDatagramWaitTimeForConnectedState(eq(true)))
                    .thenReturn(
                            TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_FOR_LAST_MESSAGE_TIMEOUT_MILLIS);
            mResultListener.clear();

            mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
@@ -201,7 +210,8 @@ public class DatagramDispatcherTest extends TelephonyTest {
                    eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT),
                    eq(1),
                    eq(SATELLITE_RESULT_SUCCESS));
            mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState();
            mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
                    eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
            verifyZeroInteractions(mMockSatelliteModemInterface);
            assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());

@@ -247,7 +257,8 @@ public class DatagramDispatcherTest extends TelephonyTest {
            verifyZeroInteractions(mMockSatelliteModemInterface);
            mInOrder.verify(mMockDatagramController)
                    .needsWaitingForSatelliteConnected(eq(datagramType));
            mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState();
            mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
                    eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
            assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());

            moveTimeForward(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
@@ -287,7 +298,8 @@ public class DatagramDispatcherTest extends TelephonyTest {
            verifyZeroInteractions(mMockSatelliteModemInterface);
            mInOrder.verify(mMockDatagramController)
                    .needsWaitingForSatelliteConnected(eq(datagramType));
            mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState();
            mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
                    eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
            assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
            assertEquals(0, mResultListener.size());

@@ -305,6 +317,19 @@ public class DatagramDispatcherTest extends TelephonyTest {

    @Test
    public void testSendSatelliteDatagram_timeout() throws  Exception {
        when(mMockDatagramController.getDatagramWaitTimeForConnectedState(eq(false)))
                .thenReturn(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
        when(mMockDatagramController.getDatagramWaitTimeForConnectedState(eq(true)))
                .thenReturn(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_FOR_LAST_MESSAGE_TIMEOUT_MILLIS);
        mContextFixture.putIntResource(
                R.integer.config_wait_for_datagram_sending_response_timeout_millis,
                TEST_WAIT_FOR_DATAGRAM_SENDING_RESPONSE_TIMEOUT_MILLIS);
        mContextFixture.putIntResource(
                R.integer.config_wait_for_datagram_sending_response_for_last_message_timeout_millis,
                TEST_WAIT_FOR_DATAGRAM_SENDING_RESPONSE_FOR_LAST_MESSAGE_TIMEOUT_MILLIS);
        mResultListener.clear();
        int[] sosDatagramTypes = {DATAGRAM_TYPE1, DATAGRAM_TYPE4, DATAGRAM_TYPE5};
        for (int datagramType : sosDatagramTypes) {
            doAnswer(invocation -> {
                Message message = (Message) invocation.getArguments()[3];

@@ -318,33 +343,29 @@ public class DatagramDispatcherTest extends TelephonyTest {
                        .sendToTarget();

                return null;
        }).when(mMockSatelliteModemInterface).sendSatelliteDatagram(any(SatelliteDatagram.class),
            }).when(mMockSatelliteModemInterface).sendSatelliteDatagram(
                    any(SatelliteDatagram.class),
                    anyBoolean(), anyBoolean(), any(Message.class));
            doReturn(false).when(mMockDatagramController)
                .needsWaitingForSatelliteConnected(eq(DATAGRAM_TYPE1));
        when(mMockDatagramController.getDatagramWaitTimeForConnectedState())
                .thenReturn(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
        mContextFixture.putIntResource(
                R.integer.config_wait_for_datagram_sending_response_timeout_millis,
                TEST_WAIT_FOR_DATAGRAM_SENDING_RESPONSE_TIMEOUT_MILLIS);
        mResultListener.clear();
                    .needsWaitingForSatelliteConnected(eq(datagramType));

        mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram,
            mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
                    true, mResultListener::offer);
            processAllMessages();
            mInOrder.verify(mMockDatagramController)
                .needsWaitingForSatelliteConnected(eq(DATAGRAM_TYPE1));
                    .needsWaitingForSatelliteConnected(eq(datagramType));
            mInOrder.verify(mMockDatagramController).isPollingInIdleState();
            mInOrder.verify(mMockDatagramController)
                .updateSendStatus(eq(SUB_ID), eq(DATAGRAM_TYPE1),
                    .updateSendStatus(eq(SUB_ID), eq(datagramType),
                            eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING), eq(1),
                            eq(SATELLITE_RESULT_SUCCESS));
            mInOrder.verify(mMockDatagramController)
                .updateSendStatus(eq(SUB_ID), eq(DATAGRAM_TYPE1),
                        eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS), eq(0),
                    .updateSendStatus(eq(SUB_ID), eq(datagramType),
                            eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS),
                            eq(0),
                            eq(SATELLITE_RESULT_SUCCESS));
            mInOrder.verify(mMockDatagramController)
                .updateSendStatus(eq(SUB_ID), eq(DATAGRAM_TYPE1),
                    .updateSendStatus(eq(SUB_ID), eq(datagramType),
                            eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0),
                            eq(SATELLITE_RESULT_SUCCESS));
            verifyNoMoreInteractions(mMockDatagramController);
@@ -361,22 +382,23 @@ public class DatagramDispatcherTest extends TelephonyTest {
            doNothing().when(mMockSatelliteModemInterface).sendSatelliteDatagram(
                    any(SatelliteDatagram.class), anyBoolean(), anyBoolean(), any(Message.class));

        mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram,
            mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
                    true, mResultListener::offer);
            processAllMessages();
            mInOrder.verify(mMockDatagramController)
                .needsWaitingForSatelliteConnected(eq(DATAGRAM_TYPE1));
                    .needsWaitingForSatelliteConnected(eq(datagramType));
            mInOrder.verify(mMockDatagramController).isPollingInIdleState();
            mInOrder.verify(mMockDatagramController)
                .updateSendStatus(eq(SUB_ID), eq(DATAGRAM_TYPE1),
                    .updateSendStatus(eq(SUB_ID), eq(datagramType),
                            eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING), eq(1),
                            eq(SATELLITE_RESULT_SUCCESS));
            mInOrder.verify(mMockDatagramController)
                .updateSendStatus(eq(SUB_ID), eq(DATAGRAM_TYPE1),
                        eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED), eq(1),
                    .updateSendStatus(eq(SUB_ID), eq(datagramType),
                            eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED),
                            eq(1),
                            eq(SATELLITE_RESULT_MODEM_TIMEOUT));
            mInOrder.verify(mMockDatagramController)
                .updateSendStatus(eq(SUB_ID), eq(DATAGRAM_TYPE1),
                    .updateSendStatus(eq(SUB_ID), eq(datagramType),
                            eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0),
                            eq(SATELLITE_RESULT_SUCCESS));
            verifyNoMoreInteractions(mMockDatagramController);
@@ -385,6 +407,12 @@ public class DatagramDispatcherTest extends TelephonyTest {
            verify(mMockSatelliteModemInterface).abortSendingSatelliteDatagrams(any(Message.class));
            assertThat(mResultListener.peek()).isEqualTo(SATELLITE_RESULT_MODEM_TIMEOUT);
            verify(mMockSessionMetricsStats, times(1)).addCountOfFailedOutgoingDatagram();

            clearInvocations(mMockSatelliteModemInterface);
            clearInvocations(mMockDatagramController);
            clearInvocations(mMockSessionMetricsStats);
            mResultListener.clear();
        }
    }

    @Test
@@ -629,33 +657,39 @@ public class DatagramDispatcherTest extends TelephonyTest {
    }

    @Test
    public void testSendSatelliteDatagramToModemInDemoMode()
            throws Exception {
    public void testSendSatelliteDatagramToModemInDemoMode() throws Exception {
        when(mFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);

        mDatagramDispatcherUT.setDemoMode(true);
        mDatagramDispatcherUT.setDeviceAlignedWithSatellite(true);

        int[] sosDatagramTypes = {DATAGRAM_TYPE1, DATAGRAM_TYPE4, DATAGRAM_TYPE5};
        for (int datagramType : sosDatagramTypes) {
            mIntegerConsumerSemaphore.drainPermits();
            mIntegerConsumerResult.clear();
            clearInvocations(mMockDatagramController);
            clearInvocations(mMockSatelliteModemInterface);
            clearInvocations(mMockSessionMetricsStats);
            doAnswer(invocation -> {
                Message message = (Message) invocation.getArguments()[3];
                mDatagramDispatcherUT.obtainMessage(2 /*EVENT_SEND_SATELLITE_DATAGRAM_DONE*/,
                                new AsyncResult(message.obj, null, null))
                        .sendToTarget();
                return null;
        }).when(mMockSatelliteModemInterface).sendSatelliteDatagram(any(SatelliteDatagram.class),
            }).when(mMockSatelliteModemInterface).sendSatelliteDatagram(
                    any(SatelliteDatagram.class),
                    anyBoolean(), anyBoolean(), any(Message.class));
        mDatagramDispatcherUT.setDemoMode(true);
        mDatagramDispatcherUT.setDeviceAlignedWithSatellite(true);
        mIntegerConsumerSemaphore.drainPermits();

            // Test when overlay config config_send_satellite_datagram_to_modem_in_demo_mode is true
            mDatagramDispatcherUT.setShouldSendDatagramToModemInDemoMode(null);
            mContextFixture.putBooleanResource(mConfigSendSatelliteDatagramToModemInDemoMode, true);
        mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram,
            mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
                    true, mIntegerConsumer);
            processAllMessages();
            moveTimeForward(TIMEOUT_DATAGRAM_DELAY_IN_DEMO_MODE);
            processAllMessages();
            waitForIntegerConsumerResult(1);
        assertEquals(SATELLITE_RESULT_SUCCESS,
                (int) mIntegerConsumerResult.get(0));
            assertEquals(SATELLITE_RESULT_SUCCESS, (int) mIntegerConsumerResult.get(0));
            mIntegerConsumerResult.clear();
            verify(mMockSatelliteModemInterface, times(1)).sendSatelliteDatagram(
                    any(SatelliteDatagram.class), anyBoolean(), anyBoolean(), any(Message.class));
@@ -667,19 +701,20 @@ public class DatagramDispatcherTest extends TelephonyTest {
            verify(mMockDatagramController).pollPendingSatelliteDatagrams(anyInt(), any());
            verify(mMockSessionMetricsStats, times(1)).addCountOfSuccessfulOutgoingDatagram();

        // Test when overlay config config_send_satellite_datagram_to_modem_in_demo_mode is false
            // Test when overlay config config_send_satellite_datagram_to_modem_in_demo_mode is
            // false
            reset(mMockSatelliteModemInterface);
            mDatagramDispatcherUT.setShouldSendDatagramToModemInDemoMode(null);
        mContextFixture.putBooleanResource(mConfigSendSatelliteDatagramToModemInDemoMode, false);
        mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram,
            mContextFixture.putBooleanResource(mConfigSendSatelliteDatagramToModemInDemoMode,
                    false);
            mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
                    true, mIntegerConsumer);
            processAllMessages();
            moveTimeForward(TIMEOUT_DATAGRAM_DELAY_IN_DEMO_MODE);
            processAllMessages();

            waitForIntegerConsumerResult(1);
        assertEquals(SATELLITE_RESULT_SUCCESS,
                (int) mIntegerConsumerResult.get(0));
            assertEquals(SATELLITE_RESULT_SUCCESS, (int) mIntegerConsumerResult.get(0));
            mIntegerConsumerResult.clear();
            verify(mMockSatelliteModemInterface, never()).sendSatelliteDatagram(
                    any(SatelliteDatagram.class), anyBoolean(), anyBoolean(), any(Message.class));
@@ -688,19 +723,19 @@ public class DatagramDispatcherTest extends TelephonyTest {
            processAllMessages();
            verify(mMockDatagramController, times(2)).pushDemoModeDatagram(
                    anyInt(), any(SatelliteDatagram.class));
        verify(mMockDatagramController, times(2)).pollPendingSatelliteDatagrams(anyInt(), any());
            verify(mMockDatagramController, times(2)).pollPendingSatelliteDatagrams(anyInt(),
                    any());

            // Send datagram one more time
            reset(mMockSatelliteModemInterface);
        mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram,
            mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
                    true, mIntegerConsumer);
            processAllMessages();
            moveTimeForward(TIMEOUT_DATAGRAM_DELAY_IN_DEMO_MODE);
            processAllMessages();

            waitForIntegerConsumerResult(1);
        assertEquals(SATELLITE_RESULT_SUCCESS,
                (int) mIntegerConsumerResult.get(0));
            assertEquals(SATELLITE_RESULT_SUCCESS, (int) mIntegerConsumerResult.get(0));
            mIntegerConsumerResult.clear();
            verify(mMockSatelliteModemInterface, never()).sendSatelliteDatagram(
                    any(SatelliteDatagram.class), anyBoolean(), anyBoolean(), any(Message.class));
@@ -709,7 +744,9 @@ public class DatagramDispatcherTest extends TelephonyTest {
            processAllMessages();
            verify(mMockDatagramController, times(3)).pushDemoModeDatagram(
                    anyInt(), any(SatelliteDatagram.class));
        verify(mMockDatagramController, times(3)).pollPendingSatelliteDatagrams(anyInt(), any());
            verify(mMockDatagramController, times(3)).pollPendingSatelliteDatagrams(anyInt(),
                    any());
        }

        mDatagramDispatcherUT.setDemoMode(false);
        mDatagramDispatcherUT.setDeviceAlignedWithSatellite(false);
Loading