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

Commit 09abd70f authored by Ayush Sharma's avatar Ayush Sharma
Browse files

Fix VVM: Use user handle associated with SIM

Bug: 265159622
Test: NA
Change-Id: Id71cebdca889f62a2418a59beef6adb4ca09ce8b
parent a664df66
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.provider.VoicemailContract;
import android.telecom.PhoneAccountHandle;
import android.telephony.PhoneNumberUtils;
@@ -60,7 +61,7 @@ public class VisualVoicemailSmsFilter {
        /**
         * Convert the subId to a {@link PhoneAccountHandle}
         */
        PhoneAccountHandle fromSubId(int subId);
        PhoneAccountHandle fromSubId(int subId, Context context);
    }

    private static final String TAG = "VvmSmsFilter";
@@ -77,7 +78,7 @@ public class VisualVoicemailSmsFilter {
            new PhoneAccountHandleConverter() {

                @Override
                public PhoneAccountHandle fromSubId(int subId) {
                public PhoneAccountHandle fromSubId(int subId, Context context) {
                    if (!SubscriptionManager.isValidSubscriptionId(subId)) {
                        return null;
                    }
@@ -85,6 +86,15 @@ public class VisualVoicemailSmsFilter {
                    if (phoneId == SubscriptionManager.INVALID_PHONE_INDEX) {
                        return null;
                    }
                    SubscriptionManager subscriptionManager =
                            (SubscriptionManager) context.getSystemService(
                                Context.TELEPHONY_SUBSCRIPTION_SERVICE);
                    UserHandle userHandle = subscriptionManager.getSubscriptionUserHandle(subId);
                    if (userHandle != null) {
                        return new PhoneAccountHandle(PSTN_CONNECTION_SERVICE_COMPONENT,
                            Integer.toString(PhoneFactory.getPhone(phoneId).getSubId()),
                            userHandle);
                    }
                    return new PhoneAccountHandle(PSTN_CONNECTION_SERVICE_COMPONENT,
                            Integer.toString(PhoneFactory.getPhone(phoneId).getSubId()));
                }
@@ -138,7 +148,8 @@ public class VisualVoicemailSmsFilter {
            return false;
        }

        PhoneAccountHandle phoneAccountHandle = sPhoneAccountHandleConverter.fromSubId(subId);
        PhoneAccountHandle phoneAccountHandle = sPhoneAccountHandleConverter.fromSubId(subId,
                context);

        if (phoneAccountHandle == null) {
            Log.e(TAG, "Unable to convert subId " + subId + " to PhoneAccountHandle");
+1 −1
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ public class VisualVoicemailSmsFilterTest extends TestCase {
        VisualVoicemailSmsFilter.setPhoneAccountHandleConverterForTest(
                new PhoneAccountHandleConverter() {
                    @Override
                    public PhoneAccountHandle fromSubId(int subId) {
                    public PhoneAccountHandle fromSubId(int subId, Context context) {
                        return new PhoneAccountHandle(
                                new ComponentName("com.android.internal.telephony",
                                        "VisualVoicemailSmsFilterTest"), "foo");