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);