diff options
author | Danny Baumann <dannybaumann@web.de> | 2014-09-05 17:22:04 +0200 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2014-09-06 14:57:04 +0200 |
commit | 330db6bd052c49910d903e98f74a0cfa8f95045a (patch) | |
tree | 97a9d6e5e4e3322877cc9b112540912dbe90449f | |
parent | 2e20ff144ad714578fbc12ccb9f34c2b656416bb (diff) | |
download | android_packages_apps_Dialer-330db6bd052c49910d903e98f74a0cfa8f95045a.tar.gz android_packages_apps_Dialer-330db6bd052c49910d903e98f74a0cfa8f95045a.tar.bz2 android_packages_apps_Dialer-330db6bd052c49910d903e98f74a0cfa8f95045a.zip |
Improve search UI.
Make highlighting color consistent to what is used elsewhere, and fix up
action bar layout theme.
Change-Id: Id4f7d2817e39d1721b96b4a2840a472271317eb2
-rw-r--r-- | res/drawable-hdpi/ic_cancel_lt.png | bin | 0 -> 468 bytes | |||
-rw-r--r-- | res/drawable-hdpi/ic_search_lt.png | bin | 0 -> 915 bytes | |||
-rw-r--r-- | res/drawable-hdpi/textfield_search_lt.9.png | bin | 0 -> 200 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/ic_cancel_lt.png | bin | 0 -> 611 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/ic_search_lt.png | bin | 0 -> 1019 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/textfield_search_lt.9.png | bin | 0 -> 219 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/ic_cancel_lt.png | bin | 0 -> 719 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/ic_search_lt.png | bin | 0 -> 1619 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/textfield_search_lt.9.png | bin | 0 -> 237 bytes | |||
-rw-r--r-- | res/values/styles.xml | 10 | ||||
-rwxr-xr-x | src/com/android/dialer/PhoneCallDetailsHelper.java | 32 | ||||
-rwxr-xr-x | src/com/android/dialer/calllog/CallLogActivity.java | 30 |
12 files changed, 35 insertions, 37 deletions
diff --git a/res/drawable-hdpi/ic_cancel_lt.png b/res/drawable-hdpi/ic_cancel_lt.png Binary files differnew file mode 100644 index 000000000..8f4c446d3 --- /dev/null +++ b/res/drawable-hdpi/ic_cancel_lt.png diff --git a/res/drawable-hdpi/ic_search_lt.png b/res/drawable-hdpi/ic_search_lt.png Binary files differnew file mode 100644 index 000000000..bcb5d85da --- /dev/null +++ b/res/drawable-hdpi/ic_search_lt.png diff --git a/res/drawable-hdpi/textfield_search_lt.9.png b/res/drawable-hdpi/textfield_search_lt.9.png Binary files differnew file mode 100644 index 000000000..550f5ff36 --- /dev/null +++ b/res/drawable-hdpi/textfield_search_lt.9.png diff --git a/res/drawable-xhdpi/ic_cancel_lt.png b/res/drawable-xhdpi/ic_cancel_lt.png Binary files differnew file mode 100644 index 000000000..04f05aae8 --- /dev/null +++ b/res/drawable-xhdpi/ic_cancel_lt.png diff --git a/res/drawable-xhdpi/ic_search_lt.png b/res/drawable-xhdpi/ic_search_lt.png Binary files differnew file mode 100644 index 000000000..71800841e --- /dev/null +++ b/res/drawable-xhdpi/ic_search_lt.png diff --git a/res/drawable-xhdpi/textfield_search_lt.9.png b/res/drawable-xhdpi/textfield_search_lt.9.png Binary files differnew file mode 100644 index 000000000..d0909888a --- /dev/null +++ b/res/drawable-xhdpi/textfield_search_lt.9.png diff --git a/res/drawable-xxhdpi/ic_cancel_lt.png b/res/drawable-xxhdpi/ic_cancel_lt.png Binary files differnew file mode 100644 index 000000000..9237b5496 --- /dev/null +++ b/res/drawable-xxhdpi/ic_cancel_lt.png diff --git a/res/drawable-xxhdpi/ic_search_lt.png b/res/drawable-xxhdpi/ic_search_lt.png Binary files differnew file mode 100644 index 000000000..a4f34d86c --- /dev/null +++ b/res/drawable-xxhdpi/ic_search_lt.png diff --git a/res/drawable-xxhdpi/textfield_search_lt.9.png b/res/drawable-xxhdpi/textfield_search_lt.9.png Binary files differnew file mode 100644 index 000000000..8b9af6770 --- /dev/null +++ b/res/drawable-xxhdpi/textfield_search_lt.9.png diff --git a/res/values/styles.xml b/res/values/styles.xml index 101845f0a..e9b951286 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -115,6 +115,16 @@ <item name="android:textAppearanceListItemSmall">@android:style/TextAppearance.Holo.Medium.Inverse</item> </style> + <!-- A theme for inflation of a search view dialtacts action bar --> + <style name="DialtactsSearchTheme" parent="DialtactsTheme"> + <item name="android:textColorPrimary">@color/actionbar_text_color</item> + <item name="android:textColorHint">@color/searchbox_hint_text_color</item> + <item name="*android:searchViewSearchIcon">@drawable/ic_search_lt</item> + <item name="*android:searchViewCloseIcon">@drawable/ic_cancel_lt</item> + <item name="*android:searchViewTextField">@drawable/textfield_search_lt</item> + <item name="android:textCursorDrawable">@*android:drawable/text_cursor_holo_dark</item> + </style> + <style name="DialtactsActionBarSpinner" parent="@*android:style/Widget.Holo.Light.Spinner.DropDown.ActionBar"> diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java index 8e0b73fd4..394b4d6e0 100755 --- a/src/com/android/dialer/PhoneCallDetailsHelper.java +++ b/src/com/android/dialer/PhoneCallDetailsHelper.java @@ -32,6 +32,7 @@ import android.text.style.StyleSpan; import android.view.View; import android.widget.TextView; +import com.android.contacts.common.format.TextHighlighter; import com.android.contacts.common.test.NeededForTesting; import com.android.dialer.calllog.CallTypeHelper; import com.android.dialer.calllog.ContactInfo; @@ -53,6 +54,7 @@ public class PhoneCallDetailsHelper { private final CallTypeHelper mCallTypeHelper; private final PhoneNumberDisplayHelper mPhoneNumberHelper; private final PhoneNumberUtilsWrapper mPhoneNumberUtilsWrapper; + private final TextHighlighter mHighlighter; /** * Creates a new instance of the helper. @@ -68,6 +70,8 @@ public class PhoneCallDetailsHelper { mCallTypeHelper = callTypeHelper; mPhoneNumberUtilsWrapper = phoneUtils; mPhoneNumberHelper = new PhoneNumberDisplayHelper(mPhoneNumberUtilsWrapper, mResources); + mHighlighter = new TextHighlighter(Typeface.BOLD, + mResources.getColor(R.color.text_highlight_color)); } /** Fills the call details views with content. */ @@ -123,17 +127,6 @@ public class PhoneCallDetailsHelper { mPhoneNumberHelper.getDisplayNumber(details.number, details.numberPresentation, details.formattedNumber); - String phoneNum = (String) details.number; - if (!TextUtils.isEmpty(filter) && phoneNum.contains(filter)) { - int start, end; - start = phoneNum.indexOf(filter); - end = start + filter.length(); - SpannableString result = new SpannableString(phoneNum); - result.setSpan(new StyleSpan(Typeface.BOLD), start, end, - Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - displayNumber = result; - } - if (TextUtils.isEmpty(details.name)) { nameText = displayNumber; if (TextUtils.isEmpty(details.geocode) @@ -147,22 +140,17 @@ public class PhoneCallDetailsHelper { views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR); } else { nameText = details.name; - if (!TextUtils.isEmpty(filter) && nameText.toString().contains(filter)) { - int start,end; - start = nameText.toString().indexOf(filter); - end = start + filter.length(); - SpannableString style = new SpannableString(nameText); - style.setSpan(new StyleSpan(Typeface.BOLD), start, end, - Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - nameText = style; - } numberText = displayNumber; labelText = TextUtils.isEmpty(numberFormattedLabel) ? numberText : numberFormattedLabel; } - views.nameView.setText(nameText); - views.labelView.setText(labelText); + if (filter != null) { + // TextHighlighter expects upper case prefix + filter = filter.toUpperCase(); + } + mHighlighter.setPrefixText(views.nameView, nameText.toString(), filter); + mHighlighter.setPrefixText(views.labelView, labelText.toString(), filter); views.labelView.setVisibility(TextUtils.isEmpty(labelText) ? View.GONE : View.VISIBLE); } diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java index fddcf0f57..e1a5c64d6 100755 --- a/src/com/android/dialer/calllog/CallLogActivity.java +++ b/src/com/android/dialer/calllog/CallLogActivity.java @@ -38,6 +38,8 @@ import android.text.Spannable; import android.text.SpannableString; import android.text.style.TypefaceSpan; import android.text.TextUtils; +import android.view.ContextThemeWrapper; +import android.view.LayoutInflater; import android.view.View; import android.view.View.OnFocusChangeListener; import android.view.inputmethod.InputMethodManager; @@ -377,29 +379,27 @@ public class CallLogActivity extends Activity implements } private void prepareSearchView() { - final View searchViewLayout = getLayoutInflater().inflate( - R.layout.custom_action_bar, null); - mSearchView = (SearchView) searchViewLayout - .findViewById(R.id.search_view); + final LayoutInflater inflater = LayoutInflater.from( + new ContextThemeWrapper(this, R.style.DialtactsSearchTheme)); + final View searchViewLayout = inflater.inflate(R.layout.custom_action_bar, null); + mSearchView = (SearchView) searchViewLayout.findViewById(R.id.search_view); mSearchView.setOnQueryTextListener(mPhoneSearchQueryTextListener); mSearchView.setOnCloseListener(mPhoneSearchCloseListener); mSearchView.setQueryHint(getString(R.string.calllog_search_hint)); mSearchView.setIconifiedByDefault(true); mSearchView.setIconified(false); - mSearchView - .setOnQueryTextFocusChangeListener(new OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean hasFocus) { - if (hasFocus) { - showInputMethod(view.findFocus()); - } - } - }); + mSearchView.setOnQueryTextFocusChangeListener(new OnFocusChangeListener() { + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (hasFocus) { + showInputMethod(view.findFocus()); + } + } + }); getActionBar().setCustomView(searchViewLayout, - new LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT)); + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); } private void showInputMethod(View view) { |