summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/searchfragment/list/NewSearchFragment.java')
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 8fe0918c3..1e630488d 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -120,6 +120,8 @@ public final class NewSearchFragment extends Fragment
private boolean remoteDirectoriesDisabledForTesting;
private final List<Directory> directories = new ArrayList<>();
+ private final Runnable loaderCp2ContactsRunnable =
+ () -> getLoaderManager().restartLoader(CONTACTS_LOADER_ID, null, this);
private final Runnable loadNearbyPlacesRunnable =
() -> getLoaderManager().restartLoader(NEARBY_PLACES_LOADER_ID, null, this);
private final Runnable loadRemoteContactsRunnable =
@@ -189,7 +191,7 @@ public final class NewSearchFragment extends Fragment
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);
+ return new SearchContactsCursorLoader(getContext(), query, isRegularSearch());
} else if (id == NEARBY_PLACES_LOADER_ID) {
// Directories represent contact data sources on the device, but since nearby places aren't
// stored on the device, they don't have a directory ID. We pass the list of all existing IDs
@@ -263,6 +265,7 @@ public final class NewSearchFragment extends Fragment
adapter.setQuery(query, rawNumber, callInitiationType);
adapter.setSearchActions(getActions());
adapter.setZeroSuggestVisible(isRegularSearch());
+ loadCp2ContactsCursor();
loadNearbyPlacesCursor();
loadRemoteContactsCursors();
}
@@ -304,6 +307,7 @@ public final class NewSearchFragment extends Fragment
@Override
public void onDestroy() {
super.onDestroy();
+ ThreadUtil.getUiThreadHandler().removeCallbacks(loaderCp2ContactsRunnable);
ThreadUtil.getUiThreadHandler().removeCallbacks(loadNearbyPlacesRunnable);
ThreadUtil.getUiThreadHandler().removeCallbacks(loadRemoteContactsRunnable);
ThreadUtil.getUiThreadHandler().removeCallbacks(capabilitiesUpdatedRunnable);
@@ -360,6 +364,13 @@ public final class NewSearchFragment extends Fragment
.postDelayed(loadRemoteContactsRunnable, NETWORK_SEARCH_DELAY_MILLIS);
}
+ private void loadCp2ContactsCursor() {
+ // Cancel existing load if one exists.
+ ThreadUtil.getUiThreadHandler().removeCallbacks(loaderCp2ContactsRunnable);
+ ThreadUtil.getUiThreadHandler()
+ .postDelayed(loaderCp2ContactsRunnable, NETWORK_SEARCH_DELAY_MILLIS);
+ }
+
// Should not be called before remote directories (not contacts) have finished loading.
private void loadNearbyPlacesCursor() {
if (!PermissionsUtil.hasLocationPermissions(getContext())