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

Commit 8c90b126 authored by Tom Taylor's avatar Tom Taylor
Browse files

[DS] Change a different way to get all subId

Bug 28667616

This is a cherry-pick from https://partner-android-review.googlesource.com/#/c/219847.
It wasn't a "clean" merge because the multi-sim apis changed quite a bit
since the original CL.

Change-Id: Ib4a446e8753784c1a34765a80feefd9aa828be76
parent 4a1bdb35
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);
                }
            }
        }