From 33611be9734fec8fa2d449c51743c7f551a4af06 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 20 Nov 2018 13:52:55 -0800 Subject: [PATCH] Removing Launcher dependency in search box layout Bug: 118758696 Change-Id: Id918c44b8bd2a97ab577481b7584afbe56e8a591 --- .../launcher3/allapps/AllAppsContainerView.java | 2 ++ .../allapps/AllAppsTransitionController.java | 2 +- .../android/launcher3/allapps/SearchUiManager.java | 6 ++++++ .../allapps/search/AppsSearchContainerLayout.java | 13 ++++++++----- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 3d15c757d0..86b96b4e41 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -304,6 +304,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mNavBarScrimHeight = insets.bottom; InsettableFrameLayout.dispatchInsets(this, insets); + mLauncher.getAllAppsController() + .setScrollRangeDelta(mSearchUiManager.getScrollRangeDelta(insets)); } @Override diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index 2d6be7b08c..ffbf34c7b3 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -221,7 +221,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil /** * Updates the total scroll range but does not update the UI. */ - public void setScrollRangeDelta(float delta) { + void setScrollRangeDelta(float delta) { mScrollRangeDelta = delta; mShiftRange = mLauncher.getDeviceProfile().heightPx - mScrollRangeDelta; diff --git a/src/com/android/launcher3/allapps/SearchUiManager.java b/src/com/android/launcher3/allapps/SearchUiManager.java index 51b90f71eb..cf9a0884bd 100644 --- a/src/com/android/launcher3/allapps/SearchUiManager.java +++ b/src/com/android/launcher3/allapps/SearchUiManager.java @@ -15,6 +15,7 @@ */ package com.android.launcher3.allapps; +import android.graphics.Rect; import android.view.KeyEvent; import android.view.animation.Interpolator; @@ -41,6 +42,11 @@ public interface SearchUiManager { */ void preDispatchKeyEvent(KeyEvent keyEvent); + /** + * Returns the vertical shift for the all-apps view, so that it aligns with the hotseat. + */ + float getScrollRangeDelta(Rect insets); + /** * Called as part of state transition to update the content UI */ diff --git a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java index b1e23d4e22..1ff484b495 100644 --- a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java +++ b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java @@ -208,13 +208,16 @@ public class AppsSearchContainerLayout extends ExtendedEditText MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams(); mlp.topMargin = Math.round(Math.max(-mFixedTranslationY, insets.top - mMarginTopAdjusting)); requestLayout(); + } - DeviceProfile dp = mLauncher.getDeviceProfile(); - if (dp.isVerticalBarLayout()) { - mLauncher.getAllAppsController().setScrollRangeDelta(0); + @Override + public float getScrollRangeDelta(Rect insets) { + if (mLauncher.getDeviceProfile().isVerticalBarLayout()) { + return 0; } else { - mLauncher.getAllAppsController().setScrollRangeDelta( - insets.bottom + mlp.topMargin + mFixedTranslationY); + int topMargin = Math.round(Math.max( + -mFixedTranslationY, insets.top - mMarginTopAdjusting)); + return insets.bottom + topMargin + mFixedTranslationY; } }