Merge "Update bubble stash test for transient taskbar" into main

This commit is contained in:
Ats Jenk
2024-10-01 18:53:36 +00:00
committed by Android (Google) Code Review
@@ -29,6 +29,7 @@ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.android.launcher3.anim.AnimatedFloat
import com.android.launcher3.taskbar.StashedHandleView
import com.android.launcher3.taskbar.TaskbarInsetsController
import com.android.launcher3.taskbar.TaskbarStashController
import com.android.launcher3.taskbar.bubbles.BubbleBarView
import com.android.launcher3.taskbar.bubbles.BubbleBarViewController
import com.android.launcher3.taskbar.bubbles.BubbleStashedHandleViewController
@@ -36,6 +37,7 @@ import com.android.launcher3.taskbar.bubbles.BubbleView
import com.android.launcher3.util.MultiValueAlpha
import com.android.wm.shell.shared.animation.PhysicsAnimator
import com.android.wm.shell.shared.animation.PhysicsAnimatorTestUtils
import com.google.common.collect.Range
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Rule
@@ -59,7 +61,7 @@ class TransientBubbleStashControllerTest {
const val BUBBLE_BAR_WIDTH = 200
const val BUBBLE_BAR_HEIGHT = 100
const val HOTSEAT_TRANSLATION_Y = -45f
const val TASK_BAR_TRANSLATION_Y = -TASKBAR_BOTTOM_SPACE
const val TASK_BAR_TRANSLATION_Y = -TASKBAR_BOTTOM_SPACE.toFloat()
const val HANDLE_VIEW_WIDTH = 150
const val HANDLE_VIEW_HEIGHT = 4
const val BUBBLE_BAR_STASHED_TRANSLATION_Y = -4.5f
@@ -195,6 +197,93 @@ class TransientBubbleStashControllerTest {
assertThat(bubbleView.alpha).isEqualTo(1f)
}
@Test
fun updateStashedAndExpandedState_unstash_bubbleBarShown_stashedHandleHidden() {
// Given bubble bar has bubbles and is stashed
mTransientBubbleStashController.isStashed = true
whenever(bubbleBarViewController.isHiddenForNoBubbles).thenReturn(false)
val bubbleInitialTranslation = bubbleView.translationY
// When unstash
getInstrumentation().runOnMainSync {
mTransientBubbleStashController.updateStashedAndExpandedState(
stash = false,
expand = false,
)
}
// Wait until animations ends
advanceTimeBy(BubbleStashController.BAR_STASH_DURATION)
PhysicsAnimatorTestUtils.blockUntilAnimationsEnd(DynamicAnimation.TRANSLATION_Y)
// Then check BubbleBarController is notified
verify(bubbleBarViewController).onStashStateChanging()
// Bubble bar is unstashed
assertThat(mTransientBubbleStashController.isStashed).isFalse()
assertThat(bubbleBarView.translationY).isEqualTo(TASK_BAR_TRANSLATION_Y)
assertThat(bubbleBarView.alpha).isEqualTo(1f)
assertThat(bubbleBarView.scaleX).isEqualTo(1f)
assertThat(bubbleBarView.scaleY).isEqualTo(1f)
assertThat(bubbleBarView.background.alpha).isEqualTo(255)
// Handle view is hidden
assertThat(stashedHandleView.translationY).isEqualTo(0)
assertThat(stashedHandleView.alpha).isEqualTo(0)
// Bubble view is reset
assertThat(bubbleView.translationY).isEqualTo(bubbleInitialTranslation)
assertThat(bubbleView.alpha).isEqualTo(1f)
}
@Test
fun updateStashedAndExpandedState_stash_animatesAlphaForBubblesAndBackgroundSeparately() {
// Given bubble bar has bubbles and is unstashed
mTransientBubbleStashController.isStashed = false
whenever(bubbleBarViewController.isHiddenForNoBubbles).thenReturn(false)
// When unstash
getInstrumentation().runOnMainSync {
mTransientBubbleStashController.updateStashedAndExpandedState(
stash = true,
expand = false,
)
}
// Stop after alpha starts
advanceTimeBy(TaskbarStashController.TASKBAR_STASH_ALPHA_START_DELAY + 10)
// Bubble bar alpha is set to 1
assertThat(bubbleBarView.alpha).isEqualTo(1f)
// We animate alpha for background and children separately
assertThat(bubbleView.alpha).isIn(Range.open(0f, 1f))
assertThat(bubbleBarView.background.alpha).isIn(Range.open(0, 255))
assertThat(bubbleBarView.background.alpha).isNotEqualTo((bubbleView.alpha * 255f).toInt())
}
@Test
fun updateStashedAndExpandedState_unstash_animatesAlphaForBubblesAndBackgroundSeparately() {
// Given bubble bar has bubbles and is stashed
mTransientBubbleStashController.isStashed = true
whenever(bubbleBarViewController.isHiddenForNoBubbles).thenReturn(false)
// When unstash
getInstrumentation().runOnMainSync {
mTransientBubbleStashController.updateStashedAndExpandedState(
stash = false,
expand = false,
)
}
// Stop after alpha starts
advanceTimeBy(TaskbarStashController.TASKBAR_STASH_ALPHA_START_DELAY + 10)
// Bubble bar alpha is set to 1
assertThat(bubbleBarView.alpha).isEqualTo(1f)
// We animate alpha for background and children separately
assertThat(bubbleView.alpha).isIn(Range.open(0f, 1f))
assertThat(bubbleBarView.background.alpha).isIn(Range.open(0, 255))
assertThat(bubbleBarView.background.alpha).isNotEqualTo((bubbleView.alpha * 255f).toInt())
}
@Test
fun isSysuiLockedSwitchedToFalseForOverview_unlockAnimationIsShown() {
// Given screen is locked and bubble bar has bubbles