summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/list/SearchAdapter.java
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2017-11-12 00:55:34 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-11-12 00:55:34 +0000
commit2b52d2a3cdcb0ac00d87d2c2cbd1d6b750ea036d (patch)
treec87ae220455edeac1c6fb5b12e033e37a07c9ed4 /java/com/android/dialer/searchfragment/list/SearchAdapter.java
parent5e20ba7b1c6a9644da034b345000b37856d78125 (diff)
parentb7dba5aaa8c477d97121fc6e3411332e66cbabe8 (diff)
Merge changes I0ed4fa1b,Ie03ce41e,If41868df,Iba2e9092
* changes: Expose tab index to protected Added temporary logging to debug problem with null phone numbers from remote contacts. Hook up pre-call actions Implement CallingAccountSelector and AssistedDialAction
Diffstat (limited to 'java/com/android/dialer/searchfragment/list/SearchAdapter.java')
-rw-r--r--java/com/android/dialer/searchfragment/list/SearchAdapter.java36
1 files changed, 36 insertions, 0 deletions
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.