diff options
author | calderwoodra <calderwoodra@google.com> | 2017-12-07 18:15:58 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-07 18:36:01 -0800 |
commit | 04a275cc28c484481bbaed74bfa9a0cba2e0a002 (patch) | |
tree | d6bce19c83108bb3ca62342b8233bddab8b2df51 /java/com/android/dialer/searchfragment/list | |
parent | 81a7b490ebbf2d9a4213a79b52e7b999aa076b7f (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.java | 13 |
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()) |