Fix creating a new conversation including own number am: 9c97af9b83 am: e7df722655 am: 71f8b60cdf
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Messaging/+/1427818
Change-Id: Ie2d803c9ed06cc4f404a8b0cc05e44d6905cea73
diff --git a/src/com/android/messaging/mmslib/pdu/PduPersister.java b/src/com/android/messaging/mmslib/pdu/PduPersister.java
index d1175ab..6615d30 100644
--- a/src/com/android/messaging/mmslib/pdu/PduPersister.java
+++ b/src/com/android/messaging/mmslib/pdu/PduPersister.java
@@ -1415,11 +1415,11 @@
// For received messages (whether group MMS is enabled or not) we want to
// associate this message with the thread composed of all the recipients
- // EXCLUDING our own number. This includes the person who sent the
- // message (the FROM field above) in addition to the other people the message
- // was addressed TO (or CC fields to address group messaging compatibility
- // issues with devices that place numbers in this field). Typically our own
- // number is in the TO/CC field so we have to remove it in loadRecipients.
+ // EXCLUDING our own number. This includes the person who sent the message
+ // (the FROM field above) in addition to the other people the message was
+ // addressed TO (or CC fields to address group messaging compatibility issues
+ // with devices that place numbers in this field). Typically our own number is
+ // in the TO/CC field so we have to remove it in checkAndLoadToCcRecipients.
checkAndLoadToCcRecipients(recipients, addressMap, subPhoneNumber);
break;
case PduHeaders.MESSAGE_TYPE_SEND_REQ:
@@ -1582,9 +1582,17 @@
}
}
}
+
+ // If selfNumber is unavailable and there is only a single address in all TO and CC, we can
+ // skip adding it into recipients as assuming it is my own phone number.
+ final boolean isSelfNumberUnavailable = TextUtils.isEmpty(selfNumber);
+ if (isSelfNumberUnavailable && numbers.size() == 1) {
+ return;
+ }
+
for (final String number : numbers) {
// Only add numbers which aren't my own number.
- if (TextUtils.isEmpty(selfNumber) || !PhoneNumberUtils.compare(number, selfNumber)) {
+ if (isSelfNumberUnavailable || !PhoneNumberUtils.compare(number, selfNumber)) {
if (!recipients.contains(number)) {
// Only add numbers which aren't already included.
recipients.add(number);