Revert^2 "Synchronize bar expansion with WM Shell"

799802cb7e

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 339683389
Test: atest BubbleBarViewAnimatorTest
Change-Id: Icd853eb76b20ee5ca035bd20c9360f5b60ecc00d
This commit is contained in:
Liran Binyamin
2024-08-15 08:18:42 +00:00
parent 799802cb7e
commit 02fdb75687
5 changed files with 158 additions and 22 deletions
@@ -495,6 +495,11 @@ public class BubbleBarController extends IBubblesListener.Stub {
() -> mBubbleBarViewController.animateBubbleBarLocation(bubbleBarLocation));
}
/** Notifies WMShell to show the expanded view. */
void showExpandedView() {
mSystemUiProxy.showExpandedView();
}
//
// Loading data for the bubbles
//
@@ -119,7 +119,8 @@ public class BubbleBarViewController {
mBubbleDragController = bubbleControllers.bubbleDragController;
mTaskbarStashController = controllers.taskbarStashController;
mTaskbarInsetsController = controllers.taskbarInsetsController;
mBubbleBarViewAnimator = new BubbleBarViewAnimator(mBarView, mBubbleStashController);
mBubbleBarViewAnimator = new BubbleBarViewAnimator(
mBarView, mBubbleStashController, mBubbleBarController::showExpandedView);
mTaskbarViewPropertiesProvider = taskbarViewPropertiesProvider;
onBubbleBarConfigurationChanged(/* animate= */ false);
mActivity.addOnDeviceProfileChangeListener(
@@ -36,6 +36,7 @@ class BubbleBarViewAnimator
constructor(
private val bubbleBarView: BubbleBarView,
private val bubbleStashController: BubbleStashController,
private val onExpanded: Runnable,
private val scheduler: Scheduler = HandlerScheduler(bubbleBarView)
) {
@@ -406,7 +407,7 @@ constructor(
springBackAnimation.spring(DynamicAnimation.TRANSLATION_Y, ty)
springBackAnimation.addEndListener { _, _, _, _, _, _, _ ->
if (animatingBubble?.expand == true) {
bubbleBarView.isExpanded = true
expandBubbleBar()
cancelHideAnimation()
} else {
moveToState(AnimatingBubble.State.IN)
@@ -417,7 +418,7 @@ constructor(
ObjectAnimator.ofFloat(bubbleBarView, View.TRANSLATION_Y, ty - bubbleBarBounceDistanceInPx)
.withDuration(BUBBLE_BAR_BOUNCE_ANIMATION_DURATION_MS)
.withEndAction {
if (animatingBubble?.expand == true) bubbleBarView.isExpanded = true
if (animatingBubble?.expand == true) expandBubbleBar()
springBackAnimation.start()
}
.start()
@@ -451,7 +452,7 @@ constructor(
this.animatingBubble = animatingBubble.copy(expand = true)
// if we're fully in and waiting to hide, cancel the hide animation and clean up
if (animatingBubble.state == AnimatingBubble.State.IN) {
bubbleBarView.isExpanded = true
expandBubbleBar()
cancelHideAnimation()
}
}
@@ -489,6 +490,11 @@ constructor(
this.animatingBubble = animatingBubble.copy(state = state)
}
private fun expandBubbleBar() {
bubbleBarView.isExpanded = true
onExpanded.run()
}
/**
* Tracks the translation Y of the bubble bar during the animation. When the bubble bar expands
* as part of the animation, the expansion should start after the bubble bar reaches the peak
@@ -510,7 +516,7 @@ constructor(
}
val expand = animatingBubble?.expand ?: false
if (reachedPeak && expand && !startedExpanding) {
bubbleBarView.isExpanded = true
expandBubbleBar()
startedExpanding = true
}
previousTy = ty
@@ -923,6 +923,17 @@ public class SystemUiProxy implements ISystemUiProxy, NavHandle, SafeCloseable {
}
}
/** Tells SysUI to show the expanded view. */
public void showExpandedView() {
try {
if (mBubbles != null) {
mBubbles.showExpandedView();
}
} catch (RemoteException e) {
Log.w(TAG, "Failed to call showExpandedView");
}
}
//
// Splitscreen
//
@@ -64,6 +64,7 @@ class BubbleBarViewAnimatorTest {
private lateinit var bubble: BubbleBarBubble
private lateinit var bubbleBarView: BubbleBarView
private lateinit var bubbleStashController: BubbleStashController
private val onExpandedNoOp = Runnable {}
@Before
fun setUp() {
@@ -81,7 +82,12 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -125,7 +131,12 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -168,7 +179,12 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -208,7 +224,12 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -249,7 +270,12 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -278,8 +304,15 @@ class BubbleBarViewAnimatorTest {
val handleAnimator = PhysicsAnimator.getInstance(handle)
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = true)
@@ -303,6 +336,7 @@ class BubbleBarViewAnimatorTest {
assertThat(animatorScheduler.delayedBlock).isNull()
verify(bubbleStashController).showBubbleBarImmediate()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -314,8 +348,15 @@ class BubbleBarViewAnimatorTest {
val handleAnimator = PhysicsAnimator.getInstance(handle)
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -345,6 +386,7 @@ class BubbleBarViewAnimatorTest {
.isEqualTo(DIFF_BETWEEN_HANDLE_AND_BAR_CENTERS + BAR_TRANSLATION_Y_FOR_TASKBAR)
verifyBubbleBarIsExpandedWithTranslation(BAR_TRANSLATION_Y_FOR_TASKBAR)
assertThat(animator.isAnimating).isFalse()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -356,8 +398,15 @@ class BubbleBarViewAnimatorTest {
val handleAnimator = PhysicsAnimator.getInstance(handle)
whenever(bubbleStashController.getStashedHandlePhysicsAnimator()).thenReturn(handleAnimator)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleInForStashed(bubble, isExpanding = false)
@@ -384,6 +433,7 @@ class BubbleBarViewAnimatorTest {
.isEqualTo(DIFF_BETWEEN_HANDLE_AND_BAR_CENTERS + BAR_TRANSLATION_Y_FOR_TASKBAR)
verifyBubbleBarIsExpandedWithTranslation(BAR_TRANSLATION_Y_FOR_TASKBAR)
assertThat(animator.isAnimating).isFalse()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -400,7 +450,12 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateToInitialState(bubble, isInApp = true, isExpanding = false)
@@ -442,8 +497,15 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateToInitialState(bubble, isInApp = true, isExpanding = true)
@@ -459,6 +521,7 @@ class BubbleBarViewAnimatorTest {
assertThat(animatorScheduler.delayedBlock).isNull()
verify(bubbleStashController).showBubbleBarImmediate()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -471,7 +534,12 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateToInitialState(bubble, isInApp = false, isExpanding = false)
@@ -502,8 +570,15 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.bubbleBarTranslationY)
.thenReturn(BAR_TRANSLATION_Y_FOR_HOTSEAT)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateToInitialState(bubble, isInApp = false, isExpanding = false)
@@ -533,6 +608,7 @@ class BubbleBarViewAnimatorTest {
verifyBubbleBarIsExpandedWithTranslation(BAR_TRANSLATION_Y_FOR_HOTSEAT)
assertThat(animator.isAnimating).isFalse()
verify(bubbleStashController).showBubbleBarImmediate()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -542,8 +618,15 @@ class BubbleBarViewAnimatorTest {
whenever(bubbleStashController.bubbleBarTranslationY)
.thenReturn(BAR_TRANSLATION_Y_FOR_HOTSEAT)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateToInitialState(bubble, isInApp = false, isExpanding = false)
@@ -566,6 +649,7 @@ class BubbleBarViewAnimatorTest {
verifyBubbleBarIsExpandedWithTranslation(BAR_TRANSLATION_Y_FOR_HOTSEAT)
assertThat(animator.isAnimating).isFalse()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -578,7 +662,12 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpandedNoOp,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleBarForCollapsed(bubble, isExpanding = false)
@@ -617,8 +706,15 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleBarForCollapsed(bubble, isExpanding = true)
@@ -645,6 +741,7 @@ class BubbleBarViewAnimatorTest {
assertThat(bubbleBarView.translationY).isEqualTo(BAR_TRANSLATION_Y_FOR_HOTSEAT)
assertThat(bubbleBarView.isExpanded).isTrue()
verify(bubbleStashController).showBubbleBarImmediate()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -656,8 +753,15 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleBarForCollapsed(bubble, isExpanding = false)
@@ -695,6 +799,7 @@ class BubbleBarViewAnimatorTest {
assertThat(bubbleBarView.translationY).isEqualTo(BAR_TRANSLATION_Y_FOR_HOTSEAT)
assertThat(bubbleBarView.isExpanded).isTrue()
verify(bubbleStashController).showBubbleBarImmediate()
assertThat(notifiedExpanded).isTrue()
}
@Test
@@ -706,8 +811,15 @@ class BubbleBarViewAnimatorTest {
val barAnimator = PhysicsAnimator.getInstance(bubbleBarView)
var notifiedExpanded = false
val onExpanded = Runnable { notifiedExpanded = true }
val animator =
BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler)
BubbleBarViewAnimator(
bubbleBarView,
bubbleStashController,
onExpanded,
animatorScheduler
)
InstrumentationRegistry.getInstrumentation().runOnMainSync {
animator.animateBubbleBarForCollapsed(bubble, isExpanding = false)
@@ -742,6 +854,7 @@ class BubbleBarViewAnimatorTest {
assertThat(bubbleBarView.translationY).isEqualTo(BAR_TRANSLATION_Y_FOR_HOTSEAT)
assertThat(bubbleBarView.isExpanded).isTrue()
verify(bubbleStashController).showBubbleBarImmediate()
assertThat(notifiedExpanded).isTrue()
}
private fun setUpBubbleBar() {