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

Commit 63b5fad3 authored by Andrew Cheng's avatar Andrew Cheng Committed by Gerrit Code Review
Browse files

Merge "mapclient: use entire message handle for pushed messages" into main

parents eefcec08 037588a4
Loading
Loading
Loading
Loading
+51 −21
Original line number Diff line number Diff line
@@ -770,6 +770,20 @@ class MceStateMachine extends StateMachine {
                                Utils.getLoggableAddress(mDevice)
                                        + " [Connected]: Message Sent, handle="
                                        + messageHandle);
                        if (Flags.useEntireMessageHandle()) {
                            // some test devices don't populate messageHandle field.
                            // in such cases, no need to wait up for response for such messages.
                            if (messageHandle != null) {
                                if (SAVE_OUTBOUND_MESSAGES) {
                                    mDatabase.storeMessage(
                                            requestPushMessage.getBMsg(),
                                            messageHandle,
                                            System.currentTimeMillis(),
                                            MESSAGE_SEEN);
                                }
                                mSentMessageLog.put(messageHandle, requestPushMessage.getBMsg());
                            }
                        } else {
                            // ignore the top-order byte (converted to string) in the handle for now
                            // some test devices don't populate messageHandle field.
                            // in such cases, no need to wait up for response for such messages.
@@ -784,6 +798,7 @@ class MceStateMachine extends StateMachine {
                                mSentMessageLog.put(
                                        messageHandle.substring(2), requestPushMessage.getBMsg());
                            }
                        }
                    } else if (message.obj instanceof RequestGetMessagesListing) {
                        processMessageListing((RequestGetMessagesListing) message.obj);
                    } else if (message.obj instanceof RequestSetMessageStatus) {
@@ -1177,8 +1192,21 @@ class MceStateMachine extends StateMachine {
            Log.d(TAG, "got a status for " + handle + " Status = " + status);
            // some test devices don't populate messageHandle field.
            // in such cases, ignore such messages.
            if (Flags.useEntireMessageHandle()) {
                if (handle == null) return;
            } else {
                if (handle == null || handle.length() <= 2) return;
            }
            PendingIntent intentToSend = null;
            if (Flags.useEntireMessageHandle()) {
                if (status == EventReport.Type.SENDING_FAILURE
                        || status == EventReport.Type.SENDING_SUCCESS) {
                    intentToSend = mSentReceiptRequested.remove(mSentMessageLog.get(handle));
                } else if (status == EventReport.Type.DELIVERY_SUCCESS
                        || status == EventReport.Type.DELIVERY_FAILURE) {
                    intentToSend = mDeliveryReceiptRequested.remove(mSentMessageLog.get(handle));
                }
            } else {
                // ignore the top-order byte (converted to string) in the handle for now
                String shortHandle = handle.substring(2);
                if (status == EventReport.Type.SENDING_FAILURE
@@ -1186,7 +1214,9 @@ class MceStateMachine extends StateMachine {
                    intentToSend = mSentReceiptRequested.remove(mSentMessageLog.get(shortHandle));
                } else if (status == EventReport.Type.DELIVERY_SUCCESS
                        || status == EventReport.Type.DELIVERY_FAILURE) {
                intentToSend = mDeliveryReceiptRequested.remove(mSentMessageLog.get(shortHandle));
                    intentToSend =
                            mDeliveryReceiptRequested.remove(mSentMessageLog.get(shortHandle));
                }
            }

            if (intentToSend != null) {
+2 −1
Original line number Diff line number Diff line
@@ -193,7 +193,8 @@ public class MapClientStateMachineTest {
    @Parameters(name = "{0}")
    public static List<FlagsParameterization> getParams() {
        return FlagsParameterization.progressionOf(
                Flags.FLAG_HANDLE_DELIVERY_SENDING_FAILURE_EVENTS);
                Flags.FLAG_HANDLE_DELIVERY_SENDING_FAILURE_EVENTS,
                Flags.FLAG_USE_ENTIRE_MESSAGE_HANDLE);
    }

    public MapClientStateMachineTest(FlagsParameterization flags) {