summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2014-09-05 17:22:04 +0200
committerDanny Baumann <dannybaumann@web.de>2014-09-06 14:57:04 +0200
commit330db6bd052c49910d903e98f74a0cfa8f95045a (patch)
tree97a9d6e5e4e3322877cc9b112540912dbe90449f
parent2e20ff144ad714578fbc12ccb9f34c2b656416bb (diff)
downloadandroid_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.pngbin0 -> 468 bytes
-rw-r--r--res/drawable-hdpi/ic_search_lt.pngbin0 -> 915 bytes
-rw-r--r--res/drawable-hdpi/textfield_search_lt.9.pngbin0 -> 200 bytes
-rw-r--r--res/drawable-xhdpi/ic_cancel_lt.pngbin0 -> 611 bytes
-rw-r--r--res/drawable-xhdpi/ic_search_lt.pngbin0 -> 1019 bytes
-rw-r--r--res/drawable-xhdpi/textfield_search_lt.9.pngbin0 -> 219 bytes
-rw-r--r--res/drawable-xxhdpi/ic_cancel_lt.pngbin0 -> 719 bytes
-rw-r--r--res/drawable-xxhdpi/ic_search_lt.pngbin0 -> 1619 bytes
-rw-r--r--res/drawable-xxhdpi/textfield_search_lt.9.pngbin0 -> 237 bytes
-rw-r--r--res/values/styles.xml10
-rwxr-xr-xsrc/com/android/dialer/PhoneCallDetailsHelper.java32
-rwxr-xr-xsrc/com/android/dialer/calllog/CallLogActivity.java30
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
new file mode 100644
index 000000000..8f4c446d3
--- /dev/null
+++ b/res/drawable-hdpi/ic_cancel_lt.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_search_lt.png b/res/drawable-hdpi/ic_search_lt.png
new file mode 100644
index 000000000..bcb5d85da
--- /dev/null
+++ b/res/drawable-hdpi/ic_search_lt.png
Binary files differ
diff --git a/res/drawable-hdpi/textfield_search_lt.9.png b/res/drawable-hdpi/textfield_search_lt.9.png
new file mode 100644
index 000000000..550f5ff36
--- /dev/null
+++ b/res/drawable-hdpi/textfield_search_lt.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_cancel_lt.png b/res/drawable-xhdpi/ic_cancel_lt.png
new file mode 100644
index 000000000..04f05aae8
--- /dev/null
+++ b/res/drawable-xhdpi/ic_cancel_lt.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_search_lt.png b/res/drawable-xhdpi/ic_search_lt.png
new file mode 100644
index 000000000..71800841e
--- /dev/null
+++ b/res/drawable-xhdpi/ic_search_lt.png
Binary files differ
diff --git a/res/drawable-xhdpi/textfield_search_lt.9.png b/res/drawable-xhdpi/textfield_search_lt.9.png
new file mode 100644
index 000000000..d0909888a
--- /dev/null
+++ b/res/drawable-xhdpi/textfield_search_lt.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_cancel_lt.png b/res/drawable-xxhdpi/ic_cancel_lt.png
new file mode 100644
index 000000000..9237b5496
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_cancel_lt.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_search_lt.png b/res/drawable-xxhdpi/ic_search_lt.png
new file mode 100644
index 000000000..a4f34d86c
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_search_lt.png
Binary files differ
diff --git a/res/drawable-xxhdpi/textfield_search_lt.9.png b/res/drawable-xxhdpi/textfield_search_lt.9.png
new file mode 100644
index 000000000..8b9af6770
--- /dev/null
+++ b/res/drawable-xxhdpi/textfield_search_lt.9.png
Binary files differ
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) {