Merge "Don't return early if searching during rebindAdapters()." into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c62a0672ab
@@ -380,7 +380,23 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
|
||||
return rv.shouldContainerScroll(ev, dragLayer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the UI to be ready for fresh interactions in the future. Exits search and returns to
|
||||
* A-Z apps list.
|
||||
*
|
||||
* @param animate Whether to animate the header during the reset (e.g. switching profile tabs).
|
||||
**/
|
||||
public void reset(boolean animate) {
|
||||
reset(animate, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the UI to be ready for fresh interactions in the future.
|
||||
*
|
||||
* @param animate Whether to animate the header during the reset (e.g. switching profile tabs).
|
||||
* @param exitSearch Whether to force exit the search state and return to A-Z apps list.
|
||||
**/
|
||||
public void reset(boolean animate, boolean exitSearch) {
|
||||
for (int i = 0; i < mAH.size(); i++) {
|
||||
if (mAH.get(i).mRecyclerView != null) {
|
||||
mAH.get(i).mRecyclerView.scrollToTop();
|
||||
@@ -394,10 +410,12 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
|
||||
}
|
||||
// Reset the base recycler view after transitioning home.
|
||||
updateHeaderScroll(0);
|
||||
// Reset the search bar after transitioning home.
|
||||
mSearchUiManager.resetSearch();
|
||||
// Animate to A-Z with 0 time to reset the animation with proper state management.
|
||||
animateToSearchState(false, 0);
|
||||
if (exitSearch) {
|
||||
// Reset the search bar after transitioning home.
|
||||
mSearchUiManager.resetSearch();
|
||||
// Animate to A-Z with 0 time to reset the animation with proper state management.
|
||||
animateToSearchState(false, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -441,7 +459,7 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
|
||||
}
|
||||
// Header keeps track of active recycler view to properly render header protection.
|
||||
mHeader.setActiveRV(currentActivePage);
|
||||
reset(true /* animate */);
|
||||
reset(true /* animate */, !isSearching() /* exitSearch */);
|
||||
|
||||
mWorkManager.onActivePageChanged(currentActivePage);
|
||||
}
|
||||
@@ -462,12 +480,6 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
|
||||
return;
|
||||
}
|
||||
|
||||
if (isSearching()) {
|
||||
mUsingTabs = showTabs;
|
||||
mWorkManager.detachWorkModeSwitch();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!FeatureFlags.ENABLE_SEARCH_RESULT_BACKGROUND_DRAWABLES.get()) {
|
||||
RecyclerView.ItemDecoration decoration = getMainAdapterProvider().getDecorator();
|
||||
getSearchRecyclerView().removeItemDecoration(decoration);
|
||||
@@ -532,7 +544,7 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
|
||||
mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.SEARCH).mRecyclerView);
|
||||
}
|
||||
|
||||
protected View replaceAppsRVContainer(boolean showTabs) {
|
||||
private void replaceAppsRVContainer(boolean showTabs) {
|
||||
for (int i = AdapterHolder.MAIN; i <= AdapterHolder.WORK; i++) {
|
||||
AdapterHolder adapterHolder = mAH.get(i);
|
||||
if (adapterHolder.mRecyclerView != null) {
|
||||
@@ -586,7 +598,7 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
|
||||
layoutBelowSearchContainer(getSearchRecyclerView(), /* tabs= */ false);
|
||||
}
|
||||
|
||||
return rvContainer;
|
||||
updateSearchResultsVisibility();
|
||||
}
|
||||
|
||||
void setupHeader() {
|
||||
|
||||
@@ -521,7 +521,6 @@ public class AllAppsTransitionController
|
||||
*/
|
||||
private void onProgressAnimationEnd() {
|
||||
if (Float.compare(mProgress, 1f) == 0) {
|
||||
mAppsView.reset(false /* animate */);
|
||||
if (mShouldControlKeyboard) {
|
||||
mLauncher.getAppsView().getSearchUiManager().getEditText().hideKeyboard();
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ public class FloatingHeaderView extends LinearLayout implements
|
||||
updateExpectedHeight();
|
||||
|
||||
mTabsHidden = tabsHidden;
|
||||
mTabLayout.setVisibility(tabsHidden ? View.GONE : View.VISIBLE);
|
||||
maybeSetTabVisibility(VISIBLE);
|
||||
mMainRV = mainRV;
|
||||
mWorkRV = workRV;
|
||||
mSearchRV = searchRV;
|
||||
@@ -250,6 +250,12 @@ public class FloatingHeaderView extends LinearLayout implements
|
||||
rvType == AdapterHolder.MAIN ? mMainRV
|
||||
: rvType == AdapterHolder.WORK ? mWorkRV : mSearchRV;
|
||||
mCurrentRV.addOnScrollListener(mOnScrollListener);
|
||||
maybeSetTabVisibility(rvType == AdapterHolder.SEARCH ? GONE : VISIBLE);
|
||||
}
|
||||
|
||||
/** Update tab visibility to the given state, only if tabs are active (work profile exists). */
|
||||
void maybeSetTabVisibility(int visibility) {
|
||||
mTabLayout.setVisibility(mTabsHidden ? GONE : visibility);
|
||||
}
|
||||
|
||||
private void updateExpectedHeight() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user