Contacts Picker: Better handling when only names are requested.

Bug: 925374, 860467
Change-Id: If11e171966d2bca09254ec5ff942c75556c0b490
Reviewed-on: https://chromium-review.googlesource.com/c/1436261
Commit-Queue: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: Theresa <twellington@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#626975}(cherry picked from commit 1d84cbe033265384397af87f7cf74796d101324e)
Reviewed-on: https://chromium-review.googlesource.com/c/1470195
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Cr-Commit-Position: refs/branch-heads/3683@{#388}
Cr-Branched-From: e51029943e0a38dd794b73caaf6373d5496ae783-refs/heads/master@{#625896}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ContactsFetcherWorkerTask.java b/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ContactsFetcherWorkerTask.java
index 5d693a44..000f1c1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ContactsFetcherWorkerTask.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/ContactsFetcherWorkerTask.java
@@ -43,6 +43,9 @@
     // The callback to use to communicate the results.
     private ContactsRetrievedCallback mCallback;
 
+    // Whether names were requested by the website.
+    private final boolean mIncludeNames;
+
     // Whether to include emails in the data fetched.
     private final boolean mIncludeEmails;
 
@@ -51,12 +54,18 @@
 
     /**
      * A ContactsFetcherWorkerTask constructor.
+     * @param contentResolver The ContentResolver to use to fetch the contacts data.
      * @param callback The callback to use to communicate back the results.
+     * @param includeNames Whether names were requested by the website.
+     * @param includeEmails Whether to include emails in the data fetched.
+     * @param includeTel Whether to include telephones in the data fetched.
      */
     public ContactsFetcherWorkerTask(ContentResolver contentResolver,
-            ContactsRetrievedCallback callback, boolean includeEmails, boolean includeTel) {
+            ContactsRetrievedCallback callback, boolean includeNames, boolean includeEmails,
+            boolean includeTel) {
         mContentResolver = contentResolver;
         mCallback = callback;
+        mIncludeNames = includeNames;
         mIncludeEmails = includeEmails;
         mIncludeTel = includeTel;
     }
@@ -147,7 +156,7 @@
                     cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY));
             List<String> email = mIncludeEmails ? emailMap.get(id) : null;
             List<String> tel = mIncludeTel ? phoneMap.get(id) : null;
-            if (email != null || tel != null)
+            if (mIncludeNames || email != null || tel != null)
                 contacts.add(new ContactDetails(id, name, email, tel));
         } while (cursor.moveToNext());
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/PickerAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/PickerAdapter.java
index 85b84c27..29462be 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/PickerAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker/PickerAdapter.java
@@ -91,8 +91,9 @@
         mContentResolver = contentResolver;
 
         if (getAllContacts() == null && sTestContacts == null) {
-            mWorkerTask = new ContactsFetcherWorkerTask(
-                    mContentResolver, this, mCategoryView.includeEmails, mCategoryView.includeTel);
+            mWorkerTask = new ContactsFetcherWorkerTask(mContentResolver, this,
+                    mCategoryView.includeNames, mCategoryView.includeEmails,
+                    mCategoryView.includeTel);
             mWorkerTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
         } else {
             mContactDetails = sTestContacts;