summaryrefslogtreecommitdiff
path: root/src/com/android/car
diff options
context:
space:
mode:
authorRitwika Mitra <ritwikam@google.com>2020-02-28 16:37:13 -0800
committerRitwika Mitra <ritwikam@google.com>2020-03-02 08:11:49 -0800
commitd93a14b7f1aa809ec7c8fa5a132f72ad33b9676e (patch)
tree72e75605a8f9f8245ee1b2194f980a1c0798c5bc /src/com/android/car
parentb2d00e02683db564832222dc6b29bb17d0e22d86 (diff)
downloadMessenger-d93a14b7f1aa809ec7c8fa5a132f72ad33b9676e.tar.gz
Ignore Group Messages
This CL drops messages that have multiple recipients. This is a risk mitigation change in case Bluetooth MMS/RCS support is added later on this branch. If the Bluetooth change is added, 1-1 RCS and non-Group MMS messages will still be supported by Messenger. Bug: 145803615 Test: to test on hawk, verify no breakages. Change-Id: Ie3e0dc99ffac33b355c5ffdca8bf091b56da2f73
Diffstat (limited to 'src/com/android/car')
-rw-r--r--src/com/android/car/messenger/MapMessage.java11
-rw-r--r--src/com/android/car/messenger/MessengerDelegate.java1
2 files changed, 11 insertions, 1 deletions
diff --git a/src/com/android/car/messenger/MapMessage.java b/src/com/android/car/messenger/MapMessage.java
index c7e91e6..86bc543 100644
--- a/src/com/android/car/messenger/MapMessage.java
+++ b/src/com/android/car/messenger/MapMessage.java
@@ -19,6 +19,7 @@ package com.android.car.messenger;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothMapClient;
import android.content.Intent;
+import com.android.car.messenger.log.L;
import androidx.annotation.Nullable;
@@ -26,6 +27,7 @@ import androidx.annotation.Nullable;
* Represents a message obtained via MAP service from a connected Bluetooth device.
*/
class MapMessage {
+ private static final String TAG = "CM.MapMessage";
private String mDeviceAddress;
private String mHandle;
private String mSenderName;
@@ -41,11 +43,18 @@ class MapMessage {
* {@link BluetoothMapClient#ACTION_MESSAGE_RECEIVED} broadcast.
*
* @param intent intent received from MAP service
- * @return message constructed from extras in {@code intent}
+ * @return message constructed from extras in {@code intent}, or null if this is a group
+ * conversation.
* @throws NullPointerException if {@code intent} is missing the device extra
* @throws IllegalArgumentException if {@code intent} is missing any other required extras
*/
+ @Nullable
public static MapMessage parseFrom(Intent intent) {
+ if (intent.getStringArrayExtra(Intent.EXTRA_CC) != null
+ && intent.getStringArrayExtra(Intent.EXTRA_CC).length > 0) {
+ L.i(TAG, "Skipping group conversation message");
+ return null;
+ }
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String handle = intent.getStringExtra(BluetoothMapClient.EXTRA_MESSAGE_HANDLE);
String senderUri = intent.getStringExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_URI);
diff --git a/src/com/android/car/messenger/MessengerDelegate.java b/src/com/android/car/messenger/MessengerDelegate.java
index 8fb77d7..137aaad 100644
--- a/src/com/android/car/messenger/MessengerDelegate.java
+++ b/src/com/android/car/messenger/MessengerDelegate.java
@@ -93,6 +93,7 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
public void onMessageReceived(Intent intent) {
try {
MapMessage message = MapMessage.parseFrom(intent);
+ if (message == null) return;
L.d(TAG, "Received message from " + message.getDeviceAddress());
MessageKey messageKey = new MessageKey(message);