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

Commit 3f2d4360 authored by Chinmay Dhodapkar's avatar Chinmay Dhodapkar Committed by Android Build Coastguard Worker
Browse files

DO NOT MERGE do not process content uri in call Intents

Add checks in Telecom so content uris are not processed

Bug: 257030107
Test: atest NewOutgoingCallIntentBroadcasterTest
Test: adb shell am start -a android.intent.action.CALL -d tel:xxx
Change-Id: Ic2c3014cecfd5db84dc2023b4c247d96ad1c3414
Merged-In: Ic2c3014cecfd5db84dc2023b4c247d96ad1c3414
(cherry picked from commit 96365184)
Merged-In: Ic2c3014cecfd5db84dc2023b4c247d96ad1c3414
parent 60f4ee79
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -315,8 +315,18 @@ public class NewOutgoingCallIntentBroadcaster {
    }

    private String getNumberFromCallIntent(Intent intent) {
        String number;
        number = mPhoneNumberUtilsAdapter.getNumberFromIntent(intent, mContext);
        String number = null;

        Uri uri = intent.getData();
        if (uri != null) {
            String scheme = uri.getScheme();
            if (scheme != null) {
                if (scheme.equals("tel") || scheme.equals("sip")) {
                    number = uri.getSchemeSpecificPart();
                }
            }
        }

        if (TextUtils.isEmpty(number)) {
            Log.w(this, "Empty number obtained from the call intent.");
            return null;
+13 −0
Original line number Diff line number Diff line
@@ -214,6 +214,19 @@ public class NewOutgoingCallIntentBroadcasterTest extends TelecomTestCase {
        verifyNoCallPlaced();
    }

    @Test
    public void testNoCallsPlacedWithContentUri() {
        Uri handle = Uri.parse("content://com.android.contacts/data/1");
        Intent intent = new Intent(Intent.ACTION_CALL, handle);

        int result = processIntent(intent, true).disconnectCause;

        assertEquals(DisconnectCause.NO_PHONE_NUMBER_SUPPLIED, result);
        verify(mContext, never()).getContentResolver();
        verifyNoBroadcastSent();
        verifyNoCallPlaced();
    }

    @SmallTest
    @Test
    public void testEmergencyCallWithNonDefaultDialer() {