diff options
author | Ritwika Mitra <ritwikam@google.com> | 2020-02-28 16:37:13 -0800 |
---|---|---|
committer | Ritwika Mitra <ritwikam@google.com> | 2020-03-02 08:11:49 -0800 |
commit | d93a14b7f1aa809ec7c8fa5a132f72ad33b9676e (patch) | |
tree | 72e75605a8f9f8245ee1b2194f980a1c0798c5bc /src/com/android/car | |
parent | b2d00e02683db564832222dc6b29bb17d0e22d86 (diff) | |
download | Messenger-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.java | 11 | ||||
-rw-r--r-- | src/com/android/car/messenger/MessengerDelegate.java | 1 |
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); |