summaryrefslogtreecommitdiff
path: root/java/com/android/dialer
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer')
-rw-r--r--java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java17
-rw-r--r--java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java2
2 files changed, 18 insertions, 1 deletions
diff --git a/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java b/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java
index ee6e61c2e..0d22a824c 100644
--- a/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java
+++ b/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java
@@ -60,6 +60,23 @@ public class QueryFilteringUtil {
return queryIndex == query.length();
}
+ /**
+ * Returns true if the subparts of the name (split by white space) begin with the query.
+ *
+ * <p>Examples:
+ *
+ * <ul>
+ * <li>#nameContainsQuery("b", "Brandon") returns true
+ * <li>#nameContainsQuery("o", "Bob") returns false
+ * <li>#nameContainsQuery("o", "Bob Olive") returns true
+ * </ul>
+ */
+ public static boolean nameContainsQuery(String query, String name) {
+ return Pattern.compile("(^|\\s)" + Pattern.quote(query.toLowerCase()))
+ .matcher(name.toLowerCase())
+ .find();
+ }
+
/** @return true if the number belongs to the query. */
public static boolean numberMatchesNumberQuery(String query, String number) {
return PhoneNumberUtils.isGlobalPhoneNumber(query)
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java b/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java
index 51992646a..05e98cc84 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java
@@ -142,7 +142,7 @@ public final class SearchContactCursor implements Cursor {
if (TextUtils.isEmpty(query)
|| QueryFilteringUtil.nameMatchesT9Query(query, previousName)
|| QueryFilteringUtil.numberMatchesNumberQuery(query, previousMostQualifiedNumber)
- || previousName.contains(query)) {
+ || QueryFilteringUtil.nameContainsQuery(query, previousName)) {
queryFilteredPositions.add(previousMostQualifiedPosition);
}
}