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

Commit 51f53cac authored by joonhunshin's avatar joonhunshin Committed by Aishwarya Mallampati
Browse files

Handle device doesn't point to satellite in CONNECTED state

Changed stop timer position for P2P and ESOS inactivity timer continuty when transitioning between CONNECTED and NOTCONNECTED states

Bug: 390722283
Test: atest SatelliteSessionControllerTest
Flag: EXEMPT (bug fix)
Change-Id: I87fc9cd186c0bad380ab7c29e4cc12d136355037
parent b5c61406
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TR
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING;
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_ENABLING_SATELLITE;
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_IDLE;
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_LISTENING;
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED;
@@ -571,13 +572,16 @@ public class SatelliteSessionController extends StateMachine {
        }

        mIsDeviceAlignedWithSatellite = isAligned;
        plogd("setDeviceAlignedWithSatellite: isAligned " +  isAligned);

        if (mIsDeviceAlignedWithSatellite) {
            stopEsosInactivityTimer();
            stopP2pSmsInactivityTimer();
            endUserInactivity();
        } else {
            if (mCurrentState == SatelliteManager.SATELLITE_MODEM_STATE_NOT_CONNECTED) {
            if (mCurrentState == SatelliteManager.SATELLITE_MODEM_STATE_NOT_CONNECTED
                    || mCurrentState == SATELLITE_MODEM_STATE_CONNECTED
                    || mCurrentState == SATELLITE_MODEM_STATE_IDLE) {
                evaluateStartingEsosInactivityTimer();
                evaluateStartingP2pSmsInactivityTimer();
            }
@@ -705,6 +709,8 @@ public class SatelliteSessionController extends StateMachine {
            mIsSendingTriggeredDuringTransferringState.set(false);
            unbindService();
            stopNbIotInactivityTimer();
            stopEsosInactivityTimer();
            stopNbIotInactivityTimer();
            endUserInactivity();
            DemoSimulator.getInstance().onSatelliteModeOff();
            notifyStateChangedEvent(SatelliteManager.SATELLITE_MODEM_STATE_OFF);
@@ -1060,6 +1066,9 @@ public class SatelliteSessionController extends StateMachine {
        public void enter() {
            if (DBG) plogd("Entering TransferringState");
            stopNbIotInactivityTimer();
            stopEsosInactivityTimer();
            stopNbIotInactivityTimer();

            mPreviousState = mCurrentState;
            mCurrentState = SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING;
            notifyStateChangedEvent(SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING);
@@ -1219,9 +1228,6 @@ public class SatelliteSessionController extends StateMachine {
        @Override
        public void exit() {
            if (DBG) plogd("Exiting NotConnectedState");

            stopEsosInactivityTimer();
            stopP2pSmsInactivityTimer();
        }

        @Override
@@ -1327,9 +1333,6 @@ public class SatelliteSessionController extends StateMachine {
        @Override
        public void exit() {
            if (DBG) plogd("Exiting ConnectedState");

            stopEsosInactivityTimer();
            stopP2pSmsInactivityTimer();
        }

        @Override
+3 −3
Original line number Diff line number Diff line
@@ -24,14 +24,12 @@ import static android.telephony.satellite.SatelliteManager.DATAGRAM_TYPE_SOS_MES
import static android.telephony.satellite.SatelliteManager.DATAGRAM_TYPE_UNKNOWN;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_UNKNOWN;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;

import static org.junit.Assert.assertEquals;
@@ -378,9 +376,11 @@ public class SatelliteSessionControllerTest extends TelephonyTest {
        // Verify that the P2P SMS inactivity timer is stopped.
        assertFalse(mTestSatelliteSessionController.isP2pSmsInActivityTimerStarted());

        moveNotConnectedToConnectedState();

        mTestSatelliteSessionController.setDeviceAlignedWithSatellite(false);

        // Verify that the P2P SMS inactivity timer is started.
        // Verify that the P2P SMS inactivity timer is started in CONNECTED state.
        assertTrue(mTestSatelliteSessionController.isP2pSmsInActivityTimerStarted());

        // Time shift to cause timeout