diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-05-12 08:17:35 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-05-15 14:14:04 -0700 |
commit | dc19a07aba37799746f451f829a38e072c011b15 (patch) | |
tree | 71324e3d7f69c6b73058abbd675ec92a47f2dfcc /src/com/android/launcher3/allapps | |
parent | b0b30d23c090bbeeb7399e9d8ae87232122a128d (diff) | |
download | android_packages_apps_Trebuchet-dc19a07aba37799746f451f829a38e072c011b15.tar.gz android_packages_apps_Trebuchet-dc19a07aba37799746f451f829a38e072c011b15.tar.bz2 android_packages_apps_Trebuchet-dc19a07aba37799746f451f829a38e072c011b15.zip |
Adding support for top padding in BaseRecyclerView. The scrollbar is
drawn below the top padding.
Also adding callback for getting the all-apps vertical pull range
so that it can be controlled by SearchUiManager
Bug: 37616877
Change-Id: Ib4642073f3e92f6676caede3bddd652fda89c86f
Diffstat (limited to 'src/com/android/launcher3/allapps')
6 files changed, 40 insertions, 24 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 0ea61f430..d9ee2c55a 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -245,6 +245,10 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } } + public SearchUiManager getSearchUiManager() { + return mSearchUiManager; + } + @Override public View getTouchDelegateTargetView() { return mAppsRecyclerView; @@ -366,6 +370,10 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc @Override public void setInsets(Rect insets) { DeviceProfile grid = mLauncher.getDeviceProfile(); + mAppsRecyclerView.setPadding( + mAppsRecyclerView.getPaddingLeft(), mAppsRecyclerView.getPaddingTop(), + mAppsRecyclerView.getPaddingRight(), insets.bottom); + if (grid.isVerticalBarLayout()) { ViewGroup.MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams(); mlp.leftMargin = insets.left; diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java index e12610257..cfd04e2e0 100644 --- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java +++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java @@ -161,11 +161,6 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. } return extraRows; } - - @Override - public int getPaddingBottom() { - return mLauncher.getDragLayer().getInsets().bottom; - } } /** diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index f3089d2cd..16b2bd1fc 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -392,21 +392,14 @@ public class AllAppsRecyclerView extends BaseRecyclerView { return getPaddingTop() + y - offset; } - @Override - protected int getScrollbarTrackHeight() { - return super.getScrollbarTrackHeight() - - Launcher.getLauncher(getContext()).getDragLayer().getInsets().bottom; - } - /** * Returns the available scroll height: * AvailableScrollHeight = Total height of the all items - last page height */ @Override protected int getAvailableScrollHeight() { - int paddedHeight = getCurrentScrollY(mApps.getAdapterItems().size(), 0); - int totalHeight = paddedHeight + getPaddingBottom(); - return totalHeight - getScrollbarTrackHeight(); + return getCurrentScrollY(mApps.getAdapterItems().size(), 0) + - getHeight() + getPaddingBottom(); } /** diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index 9c1854a36..97aa54ac5 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -42,7 +42,7 @@ import com.android.launcher3.util.TouchController; * closer to top or closer to the page indicator. */ public class AllAppsTransitionController implements TouchController, VerticalPullDetector.Listener, - View.OnLayoutChangeListener, ExtractedColors.OnChangeListener { + ExtractedColors.OnChangeListener, SearchUiManager.OnScrollRangeChangeListener { private static final String TAG = "AllAppsTrans"; private static final boolean DBG = false; @@ -531,21 +531,15 @@ public class AllAppsTransitionController implements TouchController, VerticalPul mAppsView = appsView; mHotseat = hotseat; mWorkspace = workspace; - mHotseat.addOnLayoutChangeListener(this); mHotseat.bringToFront(); mCaretController = new AllAppsCaretController( mWorkspace.getPageIndicator().getCaretDrawable(), mLauncher); + mAppsView.getSearchUiManager().addOnScrollRangeChangeListener(this); } @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) { - if (!mLauncher.getDeviceProfile().isVerticalBarLayout()) { - mShiftRange = top; - } else { - mShiftRange = bottom; - } + public void onScrollRangeChanged(int scrollRange) { + mShiftRange = scrollRange; setProgress(mProgress); } - } diff --git a/src/com/android/launcher3/allapps/SearchUiManager.java b/src/com/android/launcher3/allapps/SearchUiManager.java index 15455bcc3..0d013c73f 100644 --- a/src/com/android/launcher3/allapps/SearchUiManager.java +++ b/src/com/android/launcher3/allapps/SearchUiManager.java @@ -55,4 +55,14 @@ public interface SearchUiManager { * TODO: Remove when removing support for opening all-apps in search mode. */ void startAppsSearch(); + + void addOnScrollRangeChangeListener(OnScrollRangeChangeListener listener); + + /** + * Callback for listening to changes in the vertical scroll range when opening all-apps. + */ + interface OnScrollRangeChangeListener { + + void onScrollRangeChanged(int scrollRange); + } } diff --git a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java index 116ec8866..f785e4cdb 100644 --- a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java +++ b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java @@ -26,6 +26,7 @@ import android.text.TextUtils; import android.text.method.TextKeyListener; import android.util.AttributeSet; import android.view.KeyEvent; +import android.view.View; import android.widget.FrameLayout; import com.android.launcher3.ExtendedEditText; @@ -192,4 +193,19 @@ public class AppsSearchContainerLayout extends FrameLayout mElevationController.reset(); mAppsRecyclerView.onSearchResultsChanged(); } + + @Override + public void addOnScrollRangeChangeListener(final OnScrollRangeChangeListener listener) { + mLauncher.getHotseat().addOnLayoutChangeListener(new OnLayoutChangeListener() { + @Override + public void onLayoutChange(View v, int left, int top, int right, int bottom, + int oldLeft, int oldTop, int oldRight, int oldBottom) { + if (!mLauncher.getDeviceProfile().isVerticalBarLayout()) { + listener.onScrollRangeChanged(top); + } else { + listener.onScrollRangeChanged(bottom); + } + } + }); + } } |