summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/searchfragment')
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java12
-rw-r--r--java/com/android/dialer/searchfragment/remote/RemoteContactsCursor.java5
-rw-r--r--java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java3
3 files changed, 16 insertions, 4 deletions
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 47a4ee608..b06f9c3ad 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -165,6 +165,7 @@ public final class NewSearchFragment extends Fragment
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
+ LogUtil.i("NewSearchFragment.onCreateLoader", "loading cursor: " + id);
if (id == CONTACTS_LOADER_ID) {
return new SearchContactsCursorLoader(getContext(), query);
} else if (id == NEARBY_PLACES_LOADER_ID) {
@@ -187,6 +188,7 @@ public final class NewSearchFragment extends Fragment
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
+ LogUtil.i("NewSearchFragment.onLoadFinished", "Loader finished: " + loader);
if (cursor != null
&& !(loader instanceof RemoteDirectoriesCursorLoader)
&& !(cursor instanceof SearchCursor)) {
@@ -218,8 +220,14 @@ public final class NewSearchFragment extends Fragment
@Override
public void onLoaderReset(Loader<Cursor> loader) {
- adapter.clear();
- recyclerView.setAdapter(null);
+ LogUtil.i("NewSearchFragment.onLoaderReset", "Loader reset: " + loader);
+ if (loader instanceof SearchContactsCursorLoader) {
+ adapter.setContactsCursor(null);
+ } else if (loader instanceof NearbyPlacesCursorLoader) {
+ adapter.setNearbyPlacesCursor(null);
+ } else if (loader instanceof RemoteContactsCursorLoader) {
+ adapter.setRemoteContactsCursor(null);
+ }
}
public void setQuery(String query, CallInitiationType.Type callInitiationType) {
diff --git a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursor.java b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursor.java
index 5d80a452c..e9e83c19b 100644
--- a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursor.java
+++ b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursor.java
@@ -60,7 +60,10 @@ public final class RemoteContactsCursor extends MergeCursor implements SearchCur
public static RemoteContactsCursor newInstance(
Context context, Cursor[] cursors, List<Directory> directories) {
Assert.checkArgument(
- cursors.length == directories.size(), "Directories and cursors must be the same size.");
+ cursors.length == directories.size(),
+ "Directories (%d) and cursors (%d) must be the same size.",
+ directories.size(),
+ cursors.length);
Cursor[] cursorsWithHeaders = insertHeaders(context, cursors, directories);
if (cursorsWithHeaders.length > 0) {
return new RemoteContactsCursor(cursorsWithHeaders);
diff --git a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
index 771b7f183..37695be50 100644
--- a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
@@ -28,6 +28,7 @@ import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import com.android.dialer.searchfragment.common.Projections;
import com.android.dialer.searchfragment.remote.RemoteDirectoriesCursorLoader.Directory;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -58,7 +59,7 @@ public final class RemoteContactsCursorLoader extends CursorLoader {
null,
Phone.SORT_KEY_PRIMARY);
this.query = query;
- this.directories = directories;
+ this.directories = new ArrayList<>(directories);
cursors = new Cursor[directories.size()];
}