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

Commit 34a41681 authored by Daniel Banta's avatar Daniel Banta
Browse files

MtSmsPolling messages to be sent the first time the satellite modem is connected.

Bug: 385011293
Change-Id: I089b8184ac18c70a7b9db6ee0681197be96efea4
Test: atest DatagramDispatcherTest
FLAG: com.android.internal.telephony.flags.carrier_roaming_nb_iot_ntn
parent 62a88987
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -145,6 +145,8 @@ public class DatagramDispatcher extends Handler {
    private boolean mShouldPollMtSms = false;
    @GuardedBy("mLock")
    private boolean mIsMtSmsPollingThrottled = false;
    @GuardedBy("mLock")
    private int mConnectedStateCounter = 0;

    /**
     * Create the DatagramDispatcher singleton instance.
@@ -808,6 +810,12 @@ public class DatagramDispatcher extends Handler {

            if (state == SATELLITE_MODEM_STATE_CONNECTED) {
                mHasEnteredConnectedState = true;

                mConnectedStateCounter++;
                if (isFirstConnected()) {
                    mShouldPollMtSms = shouldPollMtSms();
                }

                if (isDatagramWaitForConnectedStateTimerStarted()) {
                    stopDatagramWaitForConnectedStateTimer();
                    sendPendingMessages();
@@ -827,6 +835,11 @@ public class DatagramDispatcher extends Handler {
        }
    }

    /** Returns true if this is the first time the satellite modem is connected. */
    private boolean isFirstConnected() {
        return mConnectedStateCounter == 1;
    }

    @GuardedBy("mLock")
    private void cleanUpResources() {
        plogd("cleanUpResources");
@@ -858,6 +871,7 @@ public class DatagramDispatcher extends Handler {
        mModemState = SATELLITE_MODEM_STATE_UNKNOWN;
        mHasEnteredConnectedState = false;
        mShouldPollMtSms = false;
        mConnectedStateCounter = 0;
        stopMtSmsPollingThrottle();
    }

+15 −0
Original line number Diff line number Diff line
@@ -1269,6 +1269,21 @@ public class DatagramDispatcherTest extends TelephonyTest {
        verify(mMockSmsDispatchersController, times(0)).sendMtSmsPollingMessage();
    }

    @Test
    public void testOnSatelliteModemStateChanged_onFirstConnected_sendsMtSmsPoll() {
        mDatagramDispatcherUT.setDeviceAlignedWithSatellite(true);
        when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true);
        // Set the following so shouldPollMtSms returns true
        mContextFixture.putBooleanResource(R.bool.config_enabled_mt_sms_polling, true);
        when(mMockSatelliteController.shouldSendSmsToDatagramDispatcher(any(Phone.class)))
                .thenReturn(true);

        mDatagramDispatcherUT.onSatelliteModemStateChanged(
                SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
    }

    private void setModemState(int state) {
        mDatagramDispatcherUT.onSatelliteModemStateChanged(state);
    }