summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/list
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2017-12-07 18:15:58 -0800
committerCopybara-Service <copybara-piper@google.com>2017-12-07 18:36:01 -0800
commit04a275cc28c484481bbaed74bfa9a0cba2e0a002 (patch)
treed6bce19c83108bb3ca62342b8233bddab8b2df51 /java/com/android/dialer/searchfragment/list
parent81a7b490ebbf2d9a4213a79b52e7b999aa076b7f (diff)
Migrate cp2 search to use SmartDialerCursorLoader and Phone.CONTENT_FILTER_URI.
Bug: 70336190,70348007 Test: existing PiperOrigin-RevId: 178325355 Change-Id: Ic43beb7a10c5127083ed33e69603b25b2831754f
Diffstat (limited to 'java/com/android/dialer/searchfragment/list')
-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())