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

Commit f7ddbd7c authored by Sooraj Sasindran's avatar Sooraj Sasindran Committed by Hakjun Choi
Browse files

Update datagram transfer state to WAITING_TO_CONNECT when waiting for satellite connection

Bug: 378676401
Flag: EXEMPT bugfix
Change-Id: I30dbb3ded4a7367263db0443135a591791c64032
Test: system test with sms and eSOS with multiple back to back messages then goes to offline and confirm all messages are acked with success or failure
parent d9bc9f0e
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -625,6 +625,13 @@ public class DatagramDispatcher extends Handler {
                    pendingDatagram.iterator().next().getValue();
            if (mDatagramController.needsWaitingForSatelliteConnected(datagramArg.datagramType)) {
                plogd("sendPendingDatagrams: wait for satellite connected");
                mDatagramController.updateSendStatus(datagramArg.subId,
                        datagramArg.datagramType,
                        SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT,
                        getPendingMessagesCount(),
                        SatelliteManager.SATELLITE_RESULT_SUCCESS);
                startDatagramWaitForConnectedStateTimer(
                        datagramArg.datagramType);
                return;
            }

@@ -1144,16 +1151,23 @@ public class DatagramDispatcher extends Handler {
        }

        if (pendingSms != null && pendingSms.iterator().hasNext()) {
            PendingRequest pendingRequest = pendingSms.iterator().next().getValue();
            int datagramType = pendingRequest.isMtSmsPolling
                    ? DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS : DATAGRAM_TYPE_SMS;
            if (mDatagramController.needsWaitingForSatelliteConnected(DATAGRAM_TYPE_SMS)) {
                plogd("sendPendingSms: wait for satellite connected");
                mDatagramController.updateSendStatus(subId,
                        datagramType,
                        SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT,
                        getPendingMessagesCount(),
                        SatelliteManager.SATELLITE_RESULT_SUCCESS);
                startDatagramWaitForConnectedStateTimer(datagramType);
                return;
            }

            mSendingInProgress = true;
            PendingRequest pendingRequest = pendingSms.iterator().next().getValue();
            mDatagramController.updateSendStatus(subId,
                    pendingRequest.isMtSmsPolling ?
                            DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS : DATAGRAM_TYPE_SMS,
                    datagramType,
                    SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING,
                    getPendingMessagesCount(), SATELLITE_RESULT_SUCCESS);
            sendMessage(obtainMessage(CMD_SEND_SMS, pendingRequest));