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

Commit b83af232 authored by Victor Chang's avatar Victor Chang
Browse files

Make Dialer app handles work directory correctly in Search bar

BUG=25899500

Change-Id: I5d6d9b6af72166c10d7658eb81ebbabbf26fac21
parent 1f8d335d
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.provider.ContactsContract.CommonDataKinds.Im;
import android.provider.ContactsContract.DisplayPhoto;
import android.telephony.PhoneNumberUtils;
@@ -45,6 +46,11 @@ public class ContactsUtils {

    private static int sThumbnailSize = -1;

    public static final boolean FLAG_N_FEATURE =
            false // Enforce Pre-N behavior in release build
            && (Build.VERSION.SDK_INT > Build.VERSION_CODES.M
                    || Build.VERSION.CODENAME.startsWith("N"));

    // TODO find a proper place for the canonical version of these
    public interface ProviderNames {
        String YAHOO = "Yahoo";
+7 −2
Original line number Diff line number Diff line
@@ -23,10 +23,12 @@ import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import android.os.Handler;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Directory;
import android.text.TextUtils;
import android.util.Log;

import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.R;

/**
@@ -42,7 +44,10 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
    public static final int SEARCH_MODE_DATA_SHORTCUT = 3;

    private static final class DirectoryQuery {
        public static final Uri URI = Directory.CONTENT_URI;
        // TODO(b/26056939): Directory.ENTERPRISE_CONTENT_URI;
        public static final Uri URI = ContactsUtils.FLAG_N_FEATURE
                ? Uri.withAppendedPath(ContactsContract.AUTHORITY_URI, "directories_enterprise")
                : Directory.CONTENT_URI;
        public static final String ORDER_BY = Directory._ID;

        public static final String[] PROJECTION = {
@@ -101,7 +106,7 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
    @Override
    protected void onStartLoading() {
        getContext().getContentResolver().
                registerContentObserver(Directory.CONTENT_URI, false, mObserver);
                registerContentObserver(DirectoryQuery.URI, false, mObserver);
        forceLoad();
    }

+25 −5
Original line number Diff line number Diff line
@@ -28,15 +28,15 @@ import android.provider.ContactsContract.CommonDataKinds.SipAddress;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;

import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.R;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.extensions.ExtendedPhoneDirectoriesManager;
import com.android.contacts.common.extensions.ExtensionsFactory;
import com.android.contacts.common.preference.ContactsPreferences;
@@ -175,9 +175,19 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
            if (isSearchMode()) {
                final Uri baseUri;
                if (isRemoteDirectoryQuery) {
                    if (ContactsUtils.FLAG_N_FEATURE) {
                        //TODO(b/26056939): Phone.ENTERPRISE_CONTENT_FILTER_URI
                        baseUri = Uri.withAppendedPath(Phone.CONTENT_URI, "filter_enterprise");
                    } else {
                        baseUri = Phone.CONTENT_FILTER_URI;
                    }
                } else if (mUseCallableUri) {
                    if (ContactsUtils.FLAG_N_FEATURE) {
                        //TODO(b/26056939): Callable.ENTERPRISE_CONTENT_FILTER_URI
                        baseUri = Uri.withAppendedPath(Callable.CONTENT_URI, "filter_enterprise");
                    } else {
                        baseUri = Callable.CONTENT_FILTER_URI;
                    }
                } else {
                    baseUri = Phone.CONTENT_FILTER_URI;
                }
@@ -190,7 +200,16 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
                            String.valueOf(getDirectoryResultLimit(getDirectoryById(directoryId))));
                }
            } else {
                final Uri baseUri = mUseCallableUri ? Callable.CONTENT_URI : Phone.CONTENT_URI;
                Uri baseUri = mUseCallableUri ? Callable.CONTENT_URI : Phone.CONTENT_URI;
                if (ContactsUtils.FLAG_N_FEATURE) {
                    if (mUseCallableUri) {
                        //TODO(b/26056939): Callable.ENTERPRISE_CONTENT_FILTER_URI
                        baseUri = Uri.withAppendedPath(Callable.CONTENT_URI, "filter_enterprise");
                    } else {
                        //TODO(b/26056939): Phone.ENTERPRISE_CONTENT_FILTER_URI
                        baseUri = Uri.withAppendedPath(Phone.CONTENT_URI, "filter_enterprise");
                    }
                }
                builder = baseUri.buildUpon().appendQueryParameter(
                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT));
                if (isSectionHeaderDisplayEnabled()) {
@@ -556,6 +575,7 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
        }
    }

    @Override
    protected Uri getContactUri(int partitionIndex, Cursor cursor,
            int contactIdColumn, int lookUpKeyColumn) {
        final DirectoryPartition directory = (DirectoryPartition) getPartition(partitionIndex);