Don't return early if searching during rebindAdapters().

This was a rare case (made less rare by rocket gesture) which was
not actually updating the UI correctly.

Expected flow:
 1. All Apps is inflated with a single recyclerview for apps (as
    defined in xml).
 2. Later, rebindAdapters() is called, and if there are work apps,
    the recyclerview is removed and replaced by a viewpager with 2
    children recyclerviews (one for personal and one for work).
 3. At any point if you start searching, the app rv or viewpager
    is hidden and the search rv is shown.

Actual flow in the error case:
 - Same as above, but if you were searching when 2 happens, we
   returned early, so we never replaced the app rv with the
   viewpager, so all the apps were dumped in the single rv, and
   the header with tabs showed above it.

Fix: 272575605
Test: Manually force first rebind ta happen while searching, and
verify this bug was hit before the fix but not after.

Change-Id: I25b8991564645368840a390733aa893dee4cd10e
This commit is contained in:
Andy Wickham
2023-03-24 17:22:38 -07:00
parent 9529f08b1b
commit 764c21b207
4 changed files with 33 additions and 15 deletions
@@ -125,6 +125,7 @@ public class SearchTransitionController {
mAllAppsContainerView.getFloatingHeaderView().setFloatingRowsCollapsed(true);
mAllAppsContainerView.getFloatingHeaderView().setVisibility(VISIBLE);
mAllAppsContainerView.getFloatingHeaderView().maybeSetTabVisibility(VISIBLE);
mAllAppsContainerView.getAppsRecyclerViewContainer().setVisibility(VISIBLE);
getSearchRecyclerView().setVisibility(VISIBLE);
getSearchRecyclerView().setChildAttachedConsumer(this::onSearchChildAttached);