Merge "Take into account cutout when hiding bubble stack in immersive mode" into tm-dev am: 9256523855

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17184734

Change-Id: I5ac20d0e23515df957c0f364d7cf1b76abfc7117
This commit is contained in:
Sergey Serokurov
2022-03-18 20:36:00 +00:00
committed by Automerger Merge Worker

View File

@@ -1049,10 +1049,17 @@ public class BubbleStackView extends FrameLayout
private final Runnable mAnimateTemporarilyInvisibleImmediate = () -> {
if (mTemporarilyInvisible && mFlyout.getVisibility() != View.VISIBLE) {
// To calculate a distance, bubble stack needs to be moved to become hidden,
// we need to take into account that the bubble stack is positioned on the edge
// of the available screen rect, which can be offset by system bars and cutouts.
if (mStackAnimationController.isStackOnLeftSide()) {
animate().translationX(-mBubbleSize).start();
int availableRectOffsetX =
mPositioner.getAvailableRect().left - mPositioner.getScreenRect().left;
animate().translationX(-(mBubbleSize + availableRectOffsetX)).start();
} else {
animate().translationX(mBubbleSize).start();
int availableRectOffsetX =
mPositioner.getAvailableRect().right - mPositioner.getScreenRect().right;
animate().translationX(mBubbleSize - availableRectOffsetX).start();
}
} else {
animate().translationX(0).start();