summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/cp2
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2017-11-02 18:05:33 -0700
committerzachh <zachh@google.com>2017-11-11 06:38:23 +0000
commit82670fee34bfc922905f31d3904406eb0677b162 (patch)
tree69c66cb89539c970896a3d16fcf347ad1ee47c7f /java/com/android/dialer/searchfragment/cp2
parent83d8a62ee2b2262941590ff5ef35986dc1df1fa1 (diff)
Support dual alphabets in smart search when a secondary alphabet is available.
Bug: 30215380 Test: QueryBoldingUtilTest, QueryFilteringUtilTest, ContactFilterCursorTest PiperOrigin-RevId: 174408771 Change-Id: I4c601b16dd90db6b7b2a05c9daa6804749ea2a43
Diffstat (limited to 'java/com/android/dialer/searchfragment/cp2')
-rw-r--r--java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java12
-rw-r--r--java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java2
-rw-r--r--java/com/android/dialer/searchfragment/cp2/SearchContactsCursor.java10
-rw-r--r--java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java2
4 files changed, 15 insertions, 11 deletions
diff --git a/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java b/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java
index 84c22a2cf..df67b762f 100644
--- a/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java
+++ b/java/com/android/dialer/searchfragment/cp2/ContactFilterCursor.java
@@ -17,6 +17,7 @@
package com.android.dialer.searchfragment.cp2;
import android.content.ContentResolver;
+import android.content.Context;
import android.database.CharArrayBuffer;
import android.database.ContentObserver;
import android.database.Cursor;
@@ -44,7 +45,7 @@ import java.util.Set;
* Wrapper for a cursor containing all on device contacts.
*
* <p>This cursor removes duplicate phone numbers associated with the same contact and can filter
- * contacts based on a query by calling {@link #filter(String)}.
+ * contacts based on a query by calling {@link #filter(String, Context)}.
*/
final class ContactFilterCursor implements Cursor {
@@ -72,10 +73,11 @@ final class ContactFilterCursor implements Cursor {
/**
* @param cursor with projection {@link Projections#CP2_PROJECTION}.
* @param query to filter cursor results.
+ * @param context of the app.
*/
- ContactFilterCursor(Cursor cursor, @Nullable String query) {
+ ContactFilterCursor(Cursor cursor, @Nullable String query, Context context) {
this.cursor = createCursor(cursor);
- filter(query);
+ filter(query, context);
}
/**
@@ -238,7 +240,7 @@ final class ContactFilterCursor implements Cursor {
* <li>Its company contains the query
* </ul>
*/
- public void filter(@Nullable String query) {
+ public void filter(@Nullable String query, Context context) {
if (query == null) {
query = "";
}
@@ -253,7 +255,7 @@ final class ContactFilterCursor implements Cursor {
String companyName = cursor.getString(Projections.COMPANY_NAME);
String nickName = cursor.getString(Projections.NICKNAME);
if (TextUtils.isEmpty(query)
- || QueryFilteringUtil.nameMatchesT9Query(query, name)
+ || QueryFilteringUtil.nameMatchesT9Query(query, name, context)
|| QueryFilteringUtil.numberMatchesNumberQuery(query, number)
|| QueryFilteringUtil.nameContainsQuery(query, name)
|| QueryFilteringUtil.nameContainsQuery(query, companyName)
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java
index c09396c72..386ab3a6b 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java
@@ -104,7 +104,7 @@ public final class SearchContactViewHolder extends ViewHolder implements OnClick
: context.getString(
com.android.contacts.common.R.string.call_subject_type_and_number, label, number);
- nameOrNumberView.setText(QueryBoldingUtil.getNameWithQueryBolded(query, name));
+ nameOrNumberView.setText(QueryBoldingUtil.getNameWithQueryBolded(query, name, context));
numberView.setText(QueryBoldingUtil.getNumberWithQueryBolded(query, secondaryInfo));
setCallToAction(cursor, query);
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursor.java b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursor.java
index 508ca7f57..7697e0520 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursor.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursor.java
@@ -32,17 +32,19 @@ import com.android.dialer.searchfragment.common.SearchCursor;
final class SearchContactsCursor extends MergeCursor implements SearchCursor {
private final ContactFilterCursor contactFilterCursor;
+ private final Context context;
static SearchContactsCursor newInstance(
Context context, ContactFilterCursor contactFilterCursor) {
MatrixCursor headerCursor = new MatrixCursor(HEADER_PROJECTION);
headerCursor.addRow(new String[] {context.getString(R.string.all_contacts)});
- return new SearchContactsCursor(new Cursor[] {headerCursor, contactFilterCursor});
+ return new SearchContactsCursor(new Cursor[] {headerCursor, contactFilterCursor}, context);
}
- private SearchContactsCursor(Cursor[] cursors) {
+ private SearchContactsCursor(Cursor[] cursors, Context context) {
super(cursors);
- contactFilterCursor = (ContactFilterCursor) cursors[1];
+ this.contactFilterCursor = (ContactFilterCursor) cursors[1];
+ this.context = context;
}
@Override
@@ -52,7 +54,7 @@ final class SearchContactsCursor extends MergeCursor implements SearchCursor {
@Override
public boolean updateQuery(@Nullable String query) {
- contactFilterCursor.filter(query);
+ contactFilterCursor.filter(query, context);
return true;
}
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
index d3abbffca..35518019e 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
@@ -61,7 +61,7 @@ public final class SearchContactsCursorLoader extends CursorLoader {
// All contacts
Cursor cursor = super.loadInBackground();
// Filtering logic
- ContactFilterCursor contactFilterCursor = new ContactFilterCursor(cursor, query);
+ ContactFilterCursor contactFilterCursor = new ContactFilterCursor(cursor, query, getContext());
// Header logic
return SearchContactsCursor.newInstance(getContext(), contactFilterCursor);
}