diff options
| author | 2023-10-26 16:23:21 +0000 | |
|---|---|---|
| committer | 2023-10-26 16:23:21 +0000 | |
| commit | e32276f8f141488045f284c49254ed506181a848 (patch) | |
| tree | b2746803b6d29e44000c7ed07a80bea483319295 | |
| parent | b2ecdfe75e8bc2148fe7ee9f1909521483268e67 (diff) | |
| parent | 63b8ee8bddce4aa615864f1067f322cb4d48bda4 (diff) | |
Merge "Fix expanded bubble view below scrim" into main
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java index ac5ba51ec139..3660fa29e9e4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java @@ -57,6 +57,7 @@ import android.view.SurfaceView; import android.view.View; import android.view.ViewGroup; import android.view.ViewOutlineProvider; +import android.view.ViewPropertyAnimator; import android.view.ViewTreeObserver; import android.view.WindowManagerPolicyConstants; import android.view.accessibility.AccessibilityNodeInfo; @@ -212,7 +213,8 @@ public class BubbleStackView extends FrameLayout private ExpandedViewAnimationController mExpandedViewAnimationController; private View mScrim; - private boolean mScrimAnimating; + @Nullable + private ViewPropertyAnimator mScrimAnimation; private View mManageMenuScrim; private FrameLayout mExpandedViewContainer; @@ -748,8 +750,8 @@ public class BubbleStackView extends FrameLayout float collapsed = -Math.min(dy, 0); mExpandedViewAnimationController.updateDrag((int) collapsed); - // Update scrim - if (!mScrimAnimating) { + // Update scrim if it's not animating already + if (mScrimAnimation == null) { mScrim.setAlpha(getScrimAlphaForDrag(collapsed)); } } @@ -768,8 +770,8 @@ public class BubbleStackView extends FrameLayout } else { mExpandedViewAnimationController.animateBackToExpanded(); - // Update scrim - if (!mScrimAnimating) { + // Update scrim if it's not animating already + if (mScrimAnimation == null) { showScrim(true, null /* runnable */); } } @@ -2237,26 +2239,27 @@ public class BubbleStackView extends FrameLayout private void showScrim(boolean show, Runnable after) { AnimatorListenerAdapter listener = new AnimatorListenerAdapter() { @Override - public void onAnimationStart(Animator animation) { - mScrimAnimating = true; - } - - @Override public void onAnimationEnd(Animator animation) { - mScrimAnimating = false; + mScrimAnimation = null; if (after != null) { after.run(); } } }; + if (mScrimAnimation != null) { + // Cancel scrim animation if it animates + mScrimAnimation.cancel(); + } if (show) { - mScrim.animate() + mScrimAnimation = mScrim.animate(); + mScrimAnimation .setInterpolator(ALPHA_IN) .alpha(BUBBLE_EXPANDED_SCRIM_ALPHA) .setListener(listener) .start(); } else { - mScrim.animate() + mScrimAnimation = mScrim.animate(); + mScrimAnimation .alpha(0f) .setInterpolator(ALPHA_OUT) .setListener(listener) |