summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/list
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/searchfragment/list')
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java8
-rw-r--r--java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java5
-rw-r--r--java/com/android/dialer/searchfragment/list/SearchAdapter.java36
3 files changed, 43 insertions, 6 deletions
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index c0a6700eb..e797a0390 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -58,6 +58,7 @@ import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager.CapabilitiesListener;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.precall.PreCall;
import com.android.dialer.searchfragment.common.RowClickListener;
import com.android.dialer.searchfragment.common.SearchCursor;
import com.android.dialer.searchfragment.cp2.SearchContactsCursorLoader;
@@ -483,12 +484,11 @@ public final class NewSearchFragment extends Fragment
.setCharactersInSearchString(query == null ? 0 : query.length())
.setAllowAssistedDialing(allowAssistedDial)
.build();
- Intent intent =
+ PreCall.start(
+ getContext(),
new CallIntentBuilder(phoneNumber, callSpecificAppData)
.setIsVideoCall(isVideoCall)
- .setAllowAssistedDial(allowAssistedDial)
- .build();
- DialerUtils.startActivityWithErrorToast(getActivity(), intent);
+ .setAllowAssistedDial(allowAssistedDial));
FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onCallPlaced();
}
diff --git a/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java b/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java
index 62e5c72b0..b557a8259 100644
--- a/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java
+++ b/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java
@@ -31,6 +31,7 @@ import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.Assert;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.precall.PreCall;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.IntentUtil;
import java.lang.annotation.Retention;
@@ -128,8 +129,8 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On
.setPositionOfSelectedSearchResult(position)
.setCharactersInSearchString(query.length())
.build();
- intent = new CallIntentBuilder(query, callSpecificAppData).setIsVideoCall(true).build();
- DialerUtils.startActivityWithErrorToast(context, intent);
+ PreCall.start(
+ context, new CallIntentBuilder(query, callSpecificAppData).setIsVideoCall(true));
break;
case Action.SEND_SMS:
diff --git a/java/com/android/dialer/searchfragment/list/SearchAdapter.java b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
index dc78953b5..cc090ac47 100644
--- a/java/com/android/dialer/searchfragment/list/SearchAdapter.java
+++ b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
@@ -17,6 +17,7 @@
package com.android.dialer.searchfragment.list;
import android.content.Context;
+import android.database.Cursor;
import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
@@ -26,12 +27,15 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.searchfragment.common.Projections;
import com.android.dialer.searchfragment.common.RowClickListener;
import com.android.dialer.searchfragment.common.SearchCursor;
import com.android.dialer.searchfragment.cp2.SearchContactViewHolder;
import com.android.dialer.searchfragment.list.SearchCursorManager.RowType;
import com.android.dialer.searchfragment.nearbyplaces.NearbyPlaceViewHolder;
import com.android.dialer.searchfragment.remote.RemoteContactViewHolder;
+import com.android.dialer.searchfragment.remote.RemoteDirectoriesCursorLoader;
import java.util.List;
/** RecyclerView adapter for {@link NewSearchFragment}. */
@@ -99,6 +103,23 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
} else if (holder instanceof NearbyPlaceViewHolder) {
((NearbyPlaceViewHolder) holder).bind(searchCursorManager.getCursor(position), query);
} else if (holder instanceof RemoteContactViewHolder) {
+ Cursor cursor = searchCursorManager.getCursor(position);
+ // Temporary logging to identify cause of a bug:
+ if (cursor.getString(Projections.PHONE_NUMBER) == null) {
+ LogUtil.e(
+ "SearchAdapter.onBindViewHolder", "cursor class: %s", cursor.getClass().getName());
+ LogUtil.e("SearchAdapter.onBindViewHolder", "position: %d", position);
+ LogUtil.e(
+ "SearchAdapter.onBindViewHolder",
+ "query length: %s",
+ query == null ? "null" : query.length());
+ logDirectories();
+ LogUtil.e(
+ "SearchAdapter.onBindViewHolder",
+ "directory id: %d",
+ ((SearchCursor) cursor).getDirectoryId());
+ throw new IllegalStateException("Null phone number reading remote contact");
+ }
((RemoteContactViewHolder) holder).bind(searchCursorManager.getCursor(position), query);
} else if (holder instanceof HeaderViewHolder) {
String header =
@@ -114,6 +135,21 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
}
}
+ private void logDirectories() {
+ try (Cursor directories = new RemoteDirectoriesCursorLoader(context).loadInBackground()) {
+ if (directories.moveToFirst()) {
+ do {
+ LogUtil.e(
+ "SearchAdapter.logDirectories",
+ "directory: %s",
+ RemoteDirectoriesCursorLoader.readDirectory(directories));
+ } while (directories.moveToNext());
+ } else {
+ LogUtil.e("SearchAdapter.logDirectories", "no directories found");
+ }
+ }
+ }
+
public void setContactsCursor(SearchCursor cursor) {
if (searchCursorManager.setContactsCursor(cursor)) {
// Since this is a new contacts cursor, we need to reapply the filter.