Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 321860fa authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez Committed by Android (Google) Code Review
Browse files

Merge "Resetting long-press effect properties if the activity launch animation...

Merge "Resetting long-press effect properties if the activity launch animation is due to a long-press effect." into main
parents 14827a1e afc878da
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -186,7 +186,8 @@ open class QSTileViewImpl @JvmOverloads constructor(
    private val locInScreen = IntArray(2)

    /** Visuo-haptic long-press effects */
    private var haveLongPressPropertiesBeenReset = true
    var haveLongPressPropertiesBeenReset = true
        private set
    private var paddingForLaunch = Rect()
    private var initialLongPressProperties: QSLongPressProperties? = null
    private var finalLongPressProperties: QSLongPressProperties? = null
@@ -772,7 +773,11 @@ open class QSTileViewImpl @JvmOverloads constructor(
        }
    }

    override fun onActivityLaunchAnimationEnd() = resetLongPressEffectProperties()
    override fun onActivityLaunchAnimationEnd() {
        if (longPressEffect != null && !haveLongPressPropertiesBeenReset) {
            resetLongPressEffectProperties()
        }
    }

    fun prepareForLaunch() {
        val startingHeight = initialLongPressProperties?.height?.toInt() ?: 0
@@ -877,8 +882,8 @@ open class QSTileViewImpl @JvmOverloads constructor(
        background.updateBounds(
            left = 0,
            top = 0,
            right = initialLongPressProperties?.width?.toInt() ?: 0,
            bottom = initialLongPressProperties?.height?.toInt() ?: 0,
            right = initialLongPressProperties?.width?.toInt() ?: measuredWidth,
            bottom = initialLongPressProperties?.height?.toInt() ?: measuredHeight,
        )
        changeCornerRadius(resources.getDimensionPixelSize(R.dimen.qs_corner_radius).toFloat())
        setAllColors(
+36 −0
Original line number Diff line number Diff line
@@ -500,6 +500,42 @@ class QSTileViewImplTest : SysuiTestCase() {
        )
    }

    @Test
    fun onActivityLaunchAnimationEnd_onFreshTile_longPressPropertiesAreReset() {
        // WHEN an activity launch animation ends on a fresh tile
        tileView.onActivityLaunchAnimationEnd()

        // THEN the tile's long-press effect properties are reset by default
        assertThat(tileView.haveLongPressPropertiesBeenReset).isTrue()
    }

    @Test
    fun onUpdateLongPressEffectProperties_duringLongPressEffect_propertiesAreNotReset() {
        // GIVEN a state that supports long-press
        val state = QSTile.State()
        tileView.changeState(state)

        // WHEN the long-press effect is updating the properties
        tileView.updateLongPressEffectProperties(1f)

        // THEN the tile's long-press effect properties haven't reset
        assertThat(tileView.haveLongPressPropertiesBeenReset).isFalse()
    }

    @Test
    fun onActivityLaunchAnimationEnd_afterLongPressEffect_longPressPropertiesAreReset() {
        // GIVEN a state that supports long-press and the long-press effect updating
        val state = QSTile.State()
        tileView.changeState(state)
        tileView.updateLongPressEffectProperties(1f)

        // WHEN an activity launch animation ends on a fresh tile
        tileView.onActivityLaunchAnimationEnd()

        // THEN the tile's long-press effect properties are reset
        assertThat(tileView.haveLongPressPropertiesBeenReset).isTrue()
    }

    class FakeTileView(
        context: Context,
        collapsed: Boolean,