Fix the bubbles expansion animation
Not quite certain why this regressed in udc since we haven't changed
this code.
animateExpansion calls updateExpandedView and sets the expanded view
container visible right before the animation started, this resulted
in a flash of the expanded view before it faded in from alpha 0.
This CL fixes the issue by moving the setVisibility call into
when the alpha animation starts. Additionally, it modifies one of
the calls to set this view 'gone' to 'invisible' which removes some
jank in the switching bubbles animation.
Test: manual - verify these animations look correct on phone & tablet:
- expand a bubble for the first time
- expand a bubble for the 2nd time
- switch between multiple bubbles
- create a bubble via bubble button
- open a bubble via the notification
Bug: 271319404
Change-Id: Ia316df546b7cf81d6f3d06e7c451c8c603d22c55
This commit is contained in:
@@ -1068,6 +1068,7 @@ public class BubbleStackView extends FrameLayout
|
||||
// We need to be Z ordered on top in order for alpha animations to work.
|
||||
mExpandedBubble.getExpandedView().setSurfaceZOrderedOnTop(true);
|
||||
mExpandedBubble.getExpandedView().setAnimating(true);
|
||||
mExpandedViewContainer.setVisibility(VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3115,7 +3116,7 @@ public class BubbleStackView extends FrameLayout
|
||||
mAnimatingOutBubbleBuffer.getColorSpace());
|
||||
|
||||
mAnimatingOutSurfaceView.setAlpha(1f);
|
||||
mExpandedViewContainer.setVisibility(View.GONE);
|
||||
mExpandedViewContainer.setVisibility(View.INVISIBLE);
|
||||
|
||||
mSurfaceSynchronizer.syncSurfaceAndRun(() -> {
|
||||
post(() -> {
|
||||
@@ -3145,9 +3146,6 @@ public class BubbleStackView extends FrameLayout
|
||||
int[] paddings = mPositioner.getExpandedViewContainerPadding(
|
||||
mStackAnimationController.isStackOnLeftSide(), isOverflowExpanded);
|
||||
mExpandedViewContainer.setPadding(paddings[0], paddings[1], paddings[2], paddings[3]);
|
||||
if (mIsExpansionAnimating) {
|
||||
mExpandedViewContainer.setVisibility(mIsExpanded ? VISIBLE : GONE);
|
||||
}
|
||||
if (mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) {
|
||||
PointF p = mPositioner.getExpandedBubbleXY(getBubbleIndex(mExpandedBubble),
|
||||
getState());
|
||||
|
||||
Reference in New Issue
Block a user