summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java9
-rw-r--r--java/com/android/dialer/app/list/SearchFragment.java5
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java11
-rw-r--r--java/com/android/dialer/searchfragment/list/SearchAdapter.java12
4 files changed, 28 insertions, 9 deletions
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 4c2634184..269e598e1 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -298,10 +298,8 @@ public class DialtactsActivity extends TransactionSafeActivity
PerformanceReport.recordClick(UiAction.Type.TEXT_CHANGE_WITH_INPUT);
}
- if (DEBUG) {
- LogUtil.v("DialtactsActivity.onTextChanged", "called with new query: " + newText);
- LogUtil.v("DialtactsActivity.onTextChanged", "previous query: " + mSearchQuery);
- }
+ LogUtil.v("DialtactsActivity.onTextChanged", "called with new query: " + newText);
+ LogUtil.v("DialtactsActivity.onTextChanged", "previous query: " + mSearchQuery);
mSearchQuery = newText;
// TODO(calderwoodra): show p13n when newText is empty.
@@ -1381,6 +1379,9 @@ public class DialtactsActivity extends TransactionSafeActivity
if (mSmartDialSearchFragment != null) {
mSmartDialSearchFragment.setAddToContactNumber(query);
}
+ if (mNewSearchFragment != null) {
+ mNewSearchFragment.setRawNumber(query);
+ }
final String normalizedQuery =
SmartDialNameMatcher.normalizeNumber(query, SmartDialNameMatcher.LATIN_SMART_DIAL_MAP);
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index e21e073bd..9330fc8c7 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -261,7 +261,10 @@ public class SearchFragment extends PhoneNumberPickerFragment {
getActivity(), intent, R.string.add_contact_not_available);
break;
case DialerPhoneNumberListAdapter.SHORTCUT_SEND_SMS_MESSAGE:
- number = adapter.getFormattedQueryString();
+ number =
+ TextUtils.isEmpty(mAddToContactNumber)
+ ? adapter.getFormattedQueryString()
+ : mAddToContactNumber;
intent = IntentUtil.getSendSmsIntent(number);
DialerUtils.startActivityWithErrorToast(getActivity(), intent);
break;
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index e797a0390..8306d37a6 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -112,6 +112,9 @@ public final class NewSearchFragment extends Fragment
private RecyclerView recyclerView;
private SearchAdapter adapter;
private String query;
+ // Raw query number from dialpad, which may contain special character such as "+". This is used
+ // for actions to add contact or send sms.
+ private String rawNumber;
private CallInitiationType.Type callInitiationType = CallInitiationType.Type.UNKNOWN_INITIATION;
private boolean remoteDirectoriesDisabledForTesting;
@@ -138,7 +141,7 @@ public final class NewSearchFragment extends Fragment
LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_search, parent, false);
adapter = new SearchAdapter(getContext(), new SearchCursorManager(), this);
- adapter.setQuery(query);
+ adapter.setQuery(query, rawNumber);
adapter.setSearchActions(getActions());
adapter.setZeroSuggestVisible(getArguments().getBoolean(KEY_SHOW_ZERO_SUGGEST));
emptyContentView = view.findViewById(R.id.empty_view);
@@ -248,11 +251,15 @@ public final class NewSearchFragment extends Fragment
}
}
+ public void setRawNumber(String rawNumber) {
+ this.rawNumber = rawNumber;
+ }
+
public void setQuery(String query, CallInitiationType.Type callInitiationType) {
this.query = query;
this.callInitiationType = callInitiationType;
if (adapter != null) {
- adapter.setQuery(query);
+ adapter.setQuery(query, rawNumber);
adapter.setSearchActions(getActions());
adapter.setZeroSuggestVisible(isRegularSearch());
loadNearbyPlacesCursor();
diff --git a/java/com/android/dialer/searchfragment/list/SearchAdapter.java b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
index cc090ac47..4254baece 100644
--- a/java/com/android/dialer/searchfragment/list/SearchAdapter.java
+++ b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
@@ -18,6 +18,7 @@ package com.android.dialer.searchfragment.list;
import android.content.Context;
import android.database.Cursor;
+import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
@@ -47,6 +48,9 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
private boolean showZeroSuggest;
private String query;
+ // Raw query number from dialpad, which may contain special character such as "+". This is used
+ // for actions to add contact or send sms.
+ private String rawNumber;
private OnClickListener allowClickListener;
private OnClickListener dismissClickListener;
private RowClickListener rowClickListener;
@@ -127,7 +131,10 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
((HeaderViewHolder) holder).setHeader(header);
} else if (holder instanceof SearchActionViewHolder) {
((SearchActionViewHolder) holder)
- .setAction(searchCursorManager.getSearchAction(position), position, query);
+ .setAction(
+ searchCursorManager.getSearchAction(position),
+ position,
+ TextUtils.isEmpty(rawNumber) ? query : rawNumber);
} else if (holder instanceof LocationPermissionViewHolder) {
// No-op
} else {
@@ -179,8 +186,9 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
showZeroSuggest = visible;
}
- public void setQuery(String query) {
+ public void setQuery(String query, @Nullable String rawNumber) {
this.query = query;
+ this.rawNumber = rawNumber;
if (searchCursorManager.setQuery(query)) {
notifyDataSetChanged();
}