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

Commit d3c480d3 authored by Andrew Cheng's avatar Andrew Cheng Committed by Automerger Merge Worker
Browse files

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

Merge "mapclient: use entire message handle for pushed messages" into main am: 63b5fad3 am: 9fc48430

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3114302



Change-Id: I7322fadf102fa5f0afdf02d8006214ae15cfb482
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9cf70326 9fc48430
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) {