Loading android/app/src/com/android/bluetooth/mapclient/MceStateMachine.java +51 −21 Original line number Diff line number Diff line Loading @@ -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. Loading @@ -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) { Loading Loading @@ -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 Loading @@ -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) { Loading android/app/tests/unit/src/com/android/bluetooth/mapclient/MapClientStateMachineTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading
android/app/src/com/android/bluetooth/mapclient/MceStateMachine.java +51 −21 Original line number Diff line number Diff line Loading @@ -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. Loading @@ -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) { Loading Loading @@ -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 Loading @@ -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) { Loading
android/app/tests/unit/src/com/android/bluetooth/mapclient/MapClientStateMachineTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading