From 48ea9e9502dde3db2de94a9f07e9bbe59ead4464 Mon Sep 17 00:00:00 2001 From: Vinit Nayak Date: Sun, 19 Apr 2020 19:21:29 -0700 Subject: [PATCH] Use appropriate start padding for clear all button This still shows up a bit strange with notched phones because we are using RecentsView padding to give ClearAll the right amount of spacing. However, we're only adding padding to the left and right and not the top/bottom. That's captured here: b/154436527 Fixes: 150389833 Test: Tested landscape/portrait/seascape launcher, w/ RTL as well Change-Id: I49defd58048e609a1f7a821abb97374bcbb94b9f --- .../com/android/quickstep/views/ClearAllButton.java | 3 ++- .../launcher3/touch/LandscapePagedViewHandler.java | 5 +++++ .../launcher3/touch/PagedOrientationHandler.java | 1 + .../launcher3/touch/PortraitPagedViewHandler.java | 5 +++++ .../launcher3/touch/SeascapePagedViewHandler.java | 11 +++++++++++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java index e455939f0e..1018211ed2 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java @@ -56,7 +56,8 @@ public class ClearAllButton extends Button implements PageCallbacks { @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); - mScrollOffset = mIsRtl ? mParent.getPaddingRight() / 2 : - mParent.getPaddingLeft() / 2; + PagedOrientationHandler orientationHandler = mParent.getPagedOrientationHandler(); + mScrollOffset = orientationHandler.getClearAllScrollOffset(mParent, mIsRtl); } @Override diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java index dc500536d3..86d3c615e8 100644 --- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java @@ -125,6 +125,11 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { return rect.height(); } + @Override + public int getClearAllScrollOffset(View view, boolean isRtl) { + return (isRtl ? view.getPaddingBottom() : - view.getPaddingTop()) / 2; + } + @Override public int getSecondaryDimension(View view) { return view.getWidth(); diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java index cc15f99127..02a020f61a 100644 --- a/src/com/android/launcher3/touch/PagedOrientationHandler.java +++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java @@ -62,6 +62,7 @@ public interface PagedOrientationHandler { float getPrimaryVelocity(VelocityTracker velocityTracker, int pointerId); int getMeasuredSize(View view); float getPrimarySize(RectF rect); + int getClearAllScrollOffset(View view, boolean isRtl); int getSecondaryDimension(View view); FloatProperty getPrimaryViewTranslate(); FloatProperty getSecondaryViewTranslate(); diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java index 7c30e29aa4..b253e7d764 100644 --- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java +++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java @@ -122,6 +122,11 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { return rect.width(); } + @Override + public int getClearAllScrollOffset(View view, boolean isRtl) { + return (isRtl ? view.getPaddingRight() : - view.getPaddingLeft()) / 2; + } + @Override public int getSecondaryDimension(View view) { return view.getHeight(); diff --git a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java index 7beb7f7466..e86ec3b6af 100644 --- a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java @@ -75,4 +75,15 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler { public float getTaskMenuY(float y, View thumbnailView) { return y + thumbnailView.getMeasuredHeight(); } + + @Override + public int getClearAllScrollOffset(View view, boolean isRtl) { + return (isRtl ? view.getPaddingTop() : - view.getPaddingBottom()) / 2; + } + + @Override + public void setPrimaryAndResetSecondaryTranslate(View view, float translation) { + view.setTranslationX(0); + view.setTranslationY(-translation); + } }