diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java index 5424fcf013..e0e78f9619 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java @@ -35,6 +35,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Insettable; import com.android.launcher3.R; +import com.android.launcher3.allapps.AllAppsRecyclerView; import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.config.FeatureFlags; @@ -196,7 +197,13 @@ public class TaskbarAllAppsSlideInView extends AbstractSlideInView } @Override - public void drawOnScrimWithScale(Canvas canvas, float scale) { + public void drawOnScrimWithScaleAndBottomOffset( + Canvas canvas, float scale, @Px int bottomOffsetPx) { final View panel = mBottomSheetBackground; final boolean hasBottomSheet = panel.getVisibility() == VISIBLE; final float translationY = ((View) panel.getParent()).getTranslationY(); @@ -1384,6 +1385,7 @@ public class ActivityAllAppsContainerView final float topWithScale = topNoScale + verticalScaleOffset; final float leftWithScale = panel.getLeft() + horizontalScaleOffset; final float rightWithScale = panel.getRight() - horizontalScaleOffset; + final float bottomWithOffset = panel.getBottom() + bottomOffsetPx; // Draw full background panel for tablets. if (hasBottomSheet) { mHeaderPaint.setColor(mBottomSheetBackgroundColor); @@ -1393,7 +1395,7 @@ public class ActivityAllAppsContainerView leftWithScale, topWithScale, rightWithScale, - panel.getBottom()); + bottomWithOffset); mTmpPath.reset(); mTmpPath.addRoundRect(mTmpRectF, mBottomSheetCornerRadii, Direction.CW); canvas.drawPath(mTmpPath, mHeaderPaint); diff --git a/src/com/android/launcher3/views/ScrimView.java b/src/com/android/launcher3/views/ScrimView.java index ca80c516f0..f6c49847de 100644 --- a/src/com/android/launcher3/views/ScrimView.java +++ b/src/com/android/launcher3/views/ScrimView.java @@ -26,6 +26,7 @@ import android.util.AttributeSet; import android.view.View; import androidx.annotation.NonNull; +import androidx.annotation.Px; import androidx.core.graphics.ColorUtils; import com.android.launcher3.BaseActivity; @@ -187,9 +188,19 @@ public class ScrimView extends View implements Insettable { * A Utility interface allowing for other surfaces to draw on ScrimView */ public interface ScrimDrawingController { - /** - * Called inside ScrimView#OnDraw - */ - void drawOnScrimWithScale(Canvas canvas, float scale); + + /** Draw scrim view on canvas with scale. */ + default void drawOnScrimWithScale(Canvas canvas, float scale) { + drawOnScrimWithScaleAndBottomOffset(canvas, scale, 0); + } + + /** Draw scrim view on canvas with bottomOffset. */ + default void drawOnScrimWithBottomOffset(Canvas canvas, @Px int bottomOffsetPx) { + drawOnScrimWithScaleAndBottomOffset(canvas, 1f, bottomOffsetPx); + } + + /** Draw scrim view on canvas with scale and bottomOffset. */ + void drawOnScrimWithScaleAndBottomOffset( + Canvas canvas, float scale, @Px int bottomOffsetPx); } }