diff options
Diffstat (limited to 'src/com/android/contacts/T9Search.java')
-rw-r--r-- | src/com/android/contacts/T9Search.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/com/android/contacts/T9Search.java b/src/com/android/contacts/T9Search.java index 5cba2888a..a4913a5ce 100644 --- a/src/com/android/contacts/T9Search.java +++ b/src/com/android/contacts/T9Search.java @@ -26,6 +26,7 @@ import java.util.Set; import android.content.ContentUris; import android.content.Context; +import android.graphics.Color; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -34,6 +35,8 @@ import android.preference.PreferenceManager; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; import android.telephony.PhoneNumberUtils; +import android.text.Spannable; +import android.text.style.ForegroundColorSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -280,7 +283,7 @@ class T9Search { return sb.toString(); } - protected static class T9Adapter extends ArrayAdapter<ContactItem> { + protected class T9Adapter extends ArrayAdapter<ContactItem> { private ArrayList<ContactItem> mItems; private LayoutInflater mMenuInflate; @@ -309,8 +312,23 @@ class T9Search { } ContactItem o = mItems.get(position); - holder.name.setText(o.name); - holder.number.setText(o.number + " (" + o.groupType + ")"); + + holder.name.setText(o.name, TextView.BufferType.SPANNABLE); + holder.number.setText(o.number + " (" + o.groupType + ")", TextView.BufferType.SPANNABLE); + if (o.nameMatchId != -1) { + Spannable s = (Spannable) holder.name.getText(); + int nameStart = o.normalName.indexOf(mPrevInput); + s.setSpan(new ForegroundColorSpan(Color.WHITE), + nameStart, nameStart + mPrevInput.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); + holder.name.setText(s); + } + if (o.numberMatchId != -1) { + Spannable s = (Spannable) holder.number.getText(); + int numberStart = o.numberMatchId; + s.setSpan(new ForegroundColorSpan(Color.WHITE), + numberStart, numberStart + mPrevInput.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); + holder.number.setText(s); + } if (o.photo != null) holder.icon.setImageBitmap(o.photo); else @@ -320,7 +338,7 @@ class T9Search { return convertView; } - static class ViewHolder { + class ViewHolder { TextView name; TextView number; QuickContactBadge icon; |