Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c20e89d4 authored by Tom Taylor's avatar Tom Taylor Committed by Android (Google) Code Review
Browse files

Merge "[DS] Change a different way to get all subId" into nyc-dev

parents 3f93be26 8c90b126
Loading
Loading
Loading
Loading
+24 −5
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.provider.Telephony.Threads;
import android.provider.Telephony.Mms.Addr;
import android.provider.Telephony.Mms.Part;
import android.provider.Telephony.MmsSms.PendingMessages;
import android.telephony.SubscriptionManager;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
@@ -1478,14 +1479,32 @@ public class PduPersister {
        if (excludeMyNumber && array.length == 1) {
            return;
        }
        String myNumber = excludeMyNumber ? mTelephonyManager.getLine1Number() : null;
        final SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext);
        final Set<String> myPhoneNumbers = new HashSet<String>();
        if (excludeMyNumber) {
            // Build a list of my phone numbers from the various sims.
            for (int subid : subscriptionManager.getActiveSubscriptionIdList()) {
                final String myNumber = mTelephonyManager.getLine1Number(subid);
                if (myNumber != null) {
                    myPhoneNumbers.add(myNumber);
                }
            }
        }

        for (EncodedStringValue v : array) {
            if (v != null) {
                String number = v.getString();
                if ((myNumber == null || !PhoneNumberUtils.compare(number, myNumber)) &&
                        !recipients.contains(number)) {
                final String number = v.getString();
                if (excludeMyNumber) {
                    for (final String myNumber : myPhoneNumbers) {
                        if (!PhoneNumberUtils.compare(number, myNumber)
                                && !recipients.contains(number)) {
                            // Only add numbers which aren't my own number.
                            recipients.add(number);
                            break;
                        }
                    }
                } else if (!recipients.contains(number)){
                    recipients.add(number);
                }
            }
        }