summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-10-24 14:05:52 -0700
committerEric Erfanian <erfanian@google.com>2017-10-24 14:05:52 -0700
commit938468da6f5c225ebb161a68bd949c9cf3261892 (patch)
tree232533fa35dc9d140fdfe0dac82b2bd21ad1b5c4 /java/com/android/dialer/searchfragment
parent958b292fc04ad15879fff47df929d6d1a826615c (diff)
Rename the new bubble package name from "bubble" to "newbubble".
It fixes AOSP for package name conflict. Test: manual PiperOrigin-RevId: 173298696 Change-Id: Id10ebe0bcf029e61f65cf6580c7198abd8395081
Diffstat (limited to 'java/com/android/dialer/searchfragment')
-rw-r--r--java/com/android/dialer/searchfragment/common/Projections.java18
-rw-r--r--java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java16
-rw-r--r--java/com/android/dialer/searchfragment/cp2/Cp2Contact.java2
-rw-r--r--java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java2
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java2
-rw-r--r--java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java5
-rw-r--r--java/com/android/dialer/searchfragment/testing/TestCursorSchema.java2
7 files changed, 32 insertions, 15 deletions
diff --git a/java/com/android/dialer/searchfragment/common/Projections.java b/java/com/android/dialer/searchfragment/common/Projections.java
index aaf9e80f1..63fac4ca0 100644
--- a/java/com/android/dialer/searchfragment/common/Projections.java
+++ b/java/com/android/dialer/searchfragment/common/Projections.java
@@ -42,7 +42,7 @@ public class Projections {
public static final int COMPANY_NAME = 12;
public static final int NICKNAME = 13;
- public static final String[] DATA_PROJECTION =
+ public static final String[] CP2_PROJECTION =
new String[] {
Data._ID, // 0
Phone.TYPE, // 1
@@ -59,4 +59,20 @@ public class Projections {
Organization.COMPANY, // 12
Nickname.NAME // 13
};
+
+ public static final String[] DATA_PROJECTION =
+ new String[] {
+ Data._ID, // 0
+ Phone.TYPE, // 1
+ Phone.LABEL, // 2
+ Phone.NUMBER, // 3
+ Data.DISPLAY_NAME_PRIMARY, // 4
+ Data.PHOTO_ID, // 5
+ Data.PHOTO_THUMBNAIL_URI, // 6
+ Data.LOOKUP_KEY, // 7
+ Data.CARRIER_PRESENCE, // 8
+ Data.CONTACT_ID, // 9
+ Data.MIMETYPE, // 10
+ Data.SORT_KEY_PRIMARY, // 11
+ };
}
diff --git a/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java b/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java
index 9a0ca0088..84c22a2cf 100644
--- a/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java
+++ b/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java
@@ -31,7 +31,6 @@ import android.support.annotation.IntDef;
import android.support.annotation.Nullable;
import android.support.v4.util.ArraySet;
import android.text.TextUtils;
-import com.android.dialer.common.Assert;
import com.android.dialer.searchfragment.common.Projections;
import com.android.dialer.searchfragment.common.QueryFilteringUtil;
import java.lang.annotation.Retention;
@@ -71,7 +70,7 @@ final class ContactFilterCursor implements Cursor {
}
/**
- * @param cursor with projection {@link Projections#DATA_PROJECTION}.
+ * @param cursor with projection {@link Projections#CP2_PROJECTION}.
* @param query to filter cursor results.
*/
ContactFilterCursor(Cursor cursor, @Nullable String query) {
@@ -123,8 +122,7 @@ final class ContactFilterCursor implements Cursor {
// Sort by display name, then build new cursor from coalesced contacts.
// We sort the contacts so that they are displayed to the user in lexicographic order.
Collections.sort(coalescedContacts, (o1, o2) -> o1.displayName().compareTo(o2.displayName()));
- MatrixCursor newCursor =
- new MatrixCursor(Projections.DATA_PROJECTION, coalescedContacts.size());
+ MatrixCursor newCursor = new MatrixCursor(Projections.CP2_PROJECTION, coalescedContacts.size());
for (Cp2Contact contact : coalescedContacts) {
newCursor.addRow(contact.toCursorRow());
}
@@ -139,11 +137,13 @@ final class ContactFilterCursor implements Cursor {
if (contact.mimeType().equals(Phone.CONTENT_ITEM_TYPE)) {
phoneContacts.add(contact);
} else if (contact.mimeType().equals(Organization.CONTENT_ITEM_TYPE)) {
- Assert.checkArgument(TextUtils.isEmpty(companyName));
- companyName = contact.companyName();
+ // Since a contact can have more than one company name but they aren't visible to the user
+ // in our search UI, we can lazily concatenate them together to make them all searchable.
+ companyName += " " + contact.companyName();
} else if (contact.mimeType().equals(Nickname.CONTENT_ITEM_TYPE)) {
- Assert.checkArgument(TextUtils.isEmpty(nickName));
- nickName = contact.nickName();
+ // Since a contact can have more than one nickname but they aren't visible to the user
+ // in our search UI, we can lazily concatenate them together to make them all searchable.
+ nickName += " " + contact.nickName();
}
}
diff --git a/java/com/android/dialer/searchfragment/cp2/Cp2Contact.java b/java/com/android/dialer/searchfragment/cp2/Cp2Contact.java
index f199f679b..8e5e3e781 100644
--- a/java/com/android/dialer/searchfragment/cp2/Cp2Contact.java
+++ b/java/com/android/dialer/searchfragment/cp2/Cp2Contact.java
@@ -111,7 +111,7 @@ public abstract class Cp2Contact {
}
public Object[] toCursorRow() {
- Object[] row = new Object[Projections.DATA_PROJECTION.length];
+ Object[] row = new Object[Projections.CP2_PROJECTION.length];
row[Projections.ID] = phoneId();
row[Projections.PHONE_TYPE] = phoneType();
row[Projections.PHONE_LABEL] = phoneLabel();
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
index f1230c6d9..d3abbffca 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
@@ -36,7 +36,7 @@ public final class SearchContactsCursorLoader extends CursorLoader {
super(
context,
Data.CONTENT_URI,
- Projections.DATA_PROJECTION,
+ Projections.CP2_PROJECTION,
whereStatement(),
null,
Phone.SORT_KEY_PRIMARY + " ASC");
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 254453508..ef1b4fc19 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -412,7 +412,7 @@ public final class NewSearchFragment extends Fragment
// Currently, setting up multiple FakeContentProviders doesn't work and results in this fragment
// being untestable while it can query multiple datasources. This is a temporary fix.
- // TODO(b/64099602): Remove this method and test this fragment with multiple data sources
+ // TODO(a bug): Remove this method and test this fragment with multiple data sources
@VisibleForTesting
public void setRemoteDirectoriesDisabled(boolean disabled) {
remoteDirectoriesDisabledForTesting = disabled;
diff --git a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
index eb472732f..64175bebc 100644
--- a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
@@ -44,7 +44,8 @@ public final class RemoteContactsCursorLoader extends CursorLoader {
Uri.withAppendedPath(Phone.CONTENT_URI, "filter_enterprise");
private static final String IGNORE_NUMBER_TOO_LONG_CLAUSE = "length(" + Phone.NUMBER + ") < 1000";
- private static final String MAX_RESULTS = "20";
+ private static final String PHONE_NUMBER_NOT_NULL = Phone.NUMBER + " IS NOT NULL";
+ private static final String MAX_RESULTS = "10";
private final String query;
private final List<Directory> directories;
@@ -55,7 +56,7 @@ public final class RemoteContactsCursorLoader extends CursorLoader {
context,
null,
Projections.DATA_PROJECTION,
- IGNORE_NUMBER_TOO_LONG_CLAUSE,
+ IGNORE_NUMBER_TOO_LONG_CLAUSE + " AND " + PHONE_NUMBER_NOT_NULL,
null,
Phone.SORT_KEY_PRIMARY);
this.query = query;
diff --git a/java/com/android/dialer/searchfragment/testing/TestCursorSchema.java b/java/com/android/dialer/searchfragment/testing/TestCursorSchema.java
index 375fdb50c..9117f72cd 100644
--- a/java/com/android/dialer/searchfragment/testing/TestCursorSchema.java
+++ b/java/com/android/dialer/searchfragment/testing/TestCursorSchema.java
@@ -23,7 +23,7 @@ public final class TestCursorSchema {
/**
* If new rows are added to {@link
- * com.android.dialer.searchfragment.common.Projections#DATA_PROJECTION}, this schema should be
+ * com.android.dialer.searchfragment.common.Projections#CP2_PROJECTION}, this schema should be
* updated.
*/
// TODO(67909522): remove these extra columns and remove all references to "Phone."