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

Commit 965b0a31 authored by Hyundo Moon's avatar Hyundo Moon Committed by Gerrit Code Review
Browse files

Merge "Encode phone number when using Uri.withAppendedPath" into main

parents de5e959a d86584dc
Loading
Loading
Loading
Loading
+11 −5
Original line number Original line Diff line number Diff line
@@ -555,11 +555,17 @@ public class AtPhonebook {
                // try caller id lookup
                // try caller id lookup
                // TODO: This code is horribly inefficient. I saw it
                // TODO: This code is horribly inefficient. I saw it
                // take 7 seconds to process 100 missed calls.
                // take 7 seconds to process 100 missed calls.
                Cursor c = BluetoothMethodProxy.getInstance().contentResolverQuery(mContentResolver,
                Cursor c =
                        Uri.withAppendedPath(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, number),
                        BluetoothMethodProxy.getInstance()
                        new String[]{
                                .contentResolverQuery(
                                PhoneLookup.DISPLAY_NAME, PhoneLookup.TYPE
                                        mContentResolver,
                        }, null, null, null);
                                        Uri.withAppendedPath(
                                                PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
                                                Uri.encode(number)),
                                        new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup.TYPE},
                                        null,
                                        null,
                                        null);
                if (c != null) {
                if (c != null) {
                    if (c.moveToFirst()) {
                    if (c.moveToFirst()) {
                        name = c.getString(0);
                        name = c.getString(0);
+32 −1
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.when;
@@ -40,6 +41,7 @@ import com.android.bluetooth.BluetoothMethodProxy;
import com.android.bluetooth.R;
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.util.DevicePolicyUtils;
import com.android.internal.telephony.GsmAlphabet;
import com.android.internal.telephony.GsmAlphabet;


import org.junit.After;
import org.junit.After;
@@ -284,6 +286,35 @@ public class AtPhonebookTest {
        verify(mNativeInterface).atResponseString(mTestDevice, expected);
        verify(mNativeInterface).atResponseString(mTestDevice, expected);
    }
    }


    @Test
    public void processCpbrCommand_doesNotCrashWithEncodingNeededNumber() {
        final String encodingNeededNumber = "###0102124";

        Cursor mockCursorOne = mock(Cursor.class);
        when(mockCursorOne.getCount()).thenReturn(1);
        when(mockCursorOne.getColumnIndex(Phone.TYPE)).thenReturn(1); // TypeColumn
        when(mockCursorOne.getColumnIndex(Phone.NUMBER)).thenReturn(2); // numberColumn
        when(mockCursorOne.getColumnIndex(Phone.DISPLAY_NAME)).thenReturn(-1); // nameColumn
        when(mockCursorOne.getInt(1)).thenReturn(Phone.TYPE_WORK);
        when(mockCursorOne.getString(2)).thenReturn(encodingNeededNumber);
        when(mockCursorOne.moveToNext()).thenReturn(false);
        doReturn(mockCursorOne)
                .when(mHfpMethodProxy)
                .contentResolverQuery(
                        any(),
                        eq(DevicePolicyUtils.getEnterprisePhoneUri(mTargetContext)),
                        any(),
                        any(),
                        any());

        mAtPhonebook.mCurrentPhonebook = "ME";
        mAtPhonebook.mCpbrIndex1 = 1;
        mAtPhonebook.mCpbrIndex2 = 2;

        // This call should not crash
        mAtPhonebook.processCpbrCommand(mTestDevice);
    }

    @Test
    @Test
    public void setCpbrIndex() {
    public void setCpbrIndex() {
        int index = 1;
        int index = 1;