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

Commit d0479606 authored by Hakjun Choi's avatar Hakjun Choi
Browse files

Make sure to handle all pending data one by one

Make sure to handle all pending data one by one

Bug: 342489856
Test: manual e2e test
Merged-In: Id7f397a5bb39f65a65d93d278a025947031b3863
Change-Id: Id7f397a5bb39f65a65d93d278a025947031b3863
parent 9b00d030
Loading
Loading
Loading
Loading
+13 −21
Original line number Diff line number Diff line
@@ -275,12 +275,19 @@ public class DatagramDispatcher extends Handler {
                        mPendingNonEmergencyDatagramsMap.remove(argument.datagramId);
                    }

                    if (error == SatelliteManager.SATELLITE_RESULT_SUCCESS) {
                    if (error == SATELLITE_RESULT_SUCCESS) {
                        // Update send status for current datagram
                        mDatagramController.updateSendStatus(argument.subId, argument.datagramType,
                                SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS,
                                getPendingDatagramCount(), error);
                        startWaitForSimulatedPollDatagramsDelayTimer(request);
                    } else {
                        // Update send status
                        mDatagramController.updateSendStatus(argument.subId, argument.datagramType,
                                SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED,
                                getPendingDatagramCount(), error);
                    }

                    if (getPendingDatagramCount() > 0) {
                        // Send response for current datagram
                        argument.callback.accept(error);
@@ -294,21 +301,6 @@ public class DatagramDispatcher extends Handler {
                        // Send response for current datagram
                        argument.callback.accept(error);
                    }
                    } else {
                        // Update send status
                        mDatagramController.updateSendStatus(argument.subId, argument.datagramType,
                                SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED,
                                getPendingDatagramCount(), error);
                        mDatagramController.updateSendStatus(argument.subId, argument.datagramType,
                                SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE,
                                0, SatelliteManager.SATELLITE_RESULT_SUCCESS);
                        // Send response for current datagram
                        // after updating datagram transfer state internally.
                        argument.callback.accept(error);
                        // Abort sending all the pending datagrams
                        abortSendingPendingDatagrams(argument.subId,
                                SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED);
                    }
                }
                break;
            }