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

Commit 9d9fb1bb authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez
Browse files

Cleanup of the flag ONE_WAY_HAPTICS_API_MIGRATION on BackPanelController

Test: atest BackPanelControllerTest
Bug: 290213663
Flag: NONE
Change-Id: I1d1f9a2f2a0a171e5e10a5b09d6ab0d3c010973c
parent e91c7507
Loading
Loading
Loading
Loading
+8 −33
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.graphics.Paint
import android.graphics.Point
import android.os.Handler
import android.os.SystemClock
import android.os.VibrationEffect
import android.util.Log
import android.util.MathUtils
import android.view.Gravity
@@ -37,8 +36,6 @@ import androidx.core.view.isVisible
import androidx.dynamicanimation.animation.DynamicAnimation
import com.android.internal.util.LatencyTracker
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION
import com.android.systemui.plugins.NavigationEdgeBackPlugin
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -78,12 +75,6 @@ private const val POP_ON_ENTRY_TO_ACTIVE_VELOCITY = 4.5f
private const val POP_ON_INACTIVE_TO_ACTIVE_VELOCITY = 4.7f
private const val POP_ON_INACTIVE_VELOCITY = -1.5f

internal val VIBRATE_ACTIVATED_EFFECT =
    VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK)

internal val VIBRATE_DEACTIVATED_EFFECT =
    VibrationEffect.createPredefined(VibrationEffect.EFFECT_TICK)

private const val DEBUG = false

class BackPanelController
@@ -95,7 +86,6 @@ internal constructor(
    private val vibratorHelper: VibratorHelper,
    private val configurationController: ConfigurationController,
    private val latencyTracker: LatencyTracker,
    private val featureFlags: FeatureFlags
) : ViewController<BackPanel>(BackPanel(context, latencyTracker)), NavigationEdgeBackPlugin {

    /**
@@ -113,7 +103,6 @@ internal constructor(
        private val vibratorHelper: VibratorHelper,
        private val configurationController: ConfigurationController,
        private val latencyTracker: LatencyTracker,
        private val featureFlags: FeatureFlags
    ) {
        /** Construct a [BackPanelController]. */
        fun create(context: Context): BackPanelController {
@@ -126,7 +115,6 @@ internal constructor(
                    vibratorHelper,
                    configurationController,
                    latencyTracker,
                    featureFlags
                )
            backPanelController.init()
            return backPanelController
@@ -992,35 +980,22 @@ internal constructor(
                val springForceOnCancelled =
                    params.cancelledIndicator.arrowDimens.alphaSpring?.get(0f)?.value
                mView.popArrowAlpha(0f, springForceOnCancelled)
                if (!featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION))
                    mainHandler.postDelayed(10L) { vibratorHelper.cancel() }
            }
        }
    }

    private fun performDeactivatedHapticFeedback() {
        if (featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) {
        vibratorHelper.performHapticFeedback(
                mView,
                HapticFeedbackConstants.GESTURE_THRESHOLD_DEACTIVATE
        )
        } else {
            vibratorHelper.vibrate(VIBRATE_DEACTIVATED_EFFECT)
        }
    }

    private fun performActivatedHapticFeedback() {
        if (featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) {
        vibratorHelper.performHapticFeedback(
                mView,
                HapticFeedbackConstants.GESTURE_THRESHOLD_ACTIVATE
        )
        } else {
            vibratorHelper.cancel()
            mainHandler.postDelayed(10L) {
                vibratorHelper.vibrate(VIBRATE_ACTIVATED_EFFECT)
            }
        }
    }

    private fun convertVelocityToAnimationFactor(
+0 −63
Original line number Diff line number Diff line
@@ -30,8 +30,6 @@ import android.view.WindowManager
import androidx.test.filters.SmallTest
import com.android.internal.util.LatencyTracker
import com.android.systemui.SysuiTestCase
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION
import com.android.systemui.plugins.NavigationEdgeBackPlugin
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -63,7 +61,6 @@ class BackPanelControllerTest : SysuiTestCase() {
    @Mock private lateinit var latencyTracker: LatencyTracker
    @Mock private lateinit var layoutParams: WindowManager.LayoutParams
    @Mock private lateinit var backCallback: NavigationEdgeBackPlugin.BackCallback
    private val featureFlags = FakeFeatureFlags()

    @Before
    fun setup() {
@@ -77,7 +74,6 @@ class BackPanelControllerTest : SysuiTestCase() {
                vibratorHelper,
                configurationController,
                latencyTracker,
                featureFlags
            )
        mBackPanelController.setLayoutParams(layoutParams)
        mBackPanelController.setBackCallback(backCallback)
@@ -106,32 +102,6 @@ class BackPanelControllerTest : SysuiTestCase() {

    @Test
    fun handlesBackCommitted() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false)
        startTouch()
        // Move once to cross the touch slop
        continueTouch(START_X + touchSlop.toFloat() + 1)
        // Move again to cross the back trigger threshold
        continueTouch(START_X + touchSlop + triggerThreshold + 1)
        // Wait threshold duration and hold touch past trigger threshold
        Thread.sleep((MAX_DURATION_ENTRY_BEFORE_ACTIVE_ANIMATION + 1).toLong())
        continueTouch(START_X + touchSlop + triggerThreshold + 1)

        assertThat(mBackPanelController.currentState)
            .isEqualTo(BackPanelController.GestureState.ACTIVE)
        verify(backCallback).setTriggerBack(true)
        testableLooper.moveTimeForward(100)
        testableLooper.processAllMessages()
        verify(vibratorHelper).vibrate(VIBRATE_ACTIVATED_EFFECT)

        finishTouchActionUp(START_X + touchSlop + triggerThreshold + 1)
        assertThat(mBackPanelController.currentState)
            .isEqualTo(BackPanelController.GestureState.COMMITTED)
        verify(backCallback).triggerBack()
    }

    @Test
    fun handlesBackCommitted_withOneWayHapticsAPI() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true)
        startTouch()
        // Move once to cross the touch slop
        continueTouch(START_X + touchSlop.toFloat() + 1)
@@ -148,7 +118,6 @@ class BackPanelControllerTest : SysuiTestCase() {
        testableLooper.processAllMessages()
        verify(vibratorHelper)
            .performHapticFeedback(any(), eq(HapticFeedbackConstants.GESTURE_THRESHOLD_ACTIVATE))

        finishTouchActionUp(START_X + touchSlop + triggerThreshold + 1)
        assertThat(mBackPanelController.currentState)
            .isEqualTo(BackPanelController.GestureState.COMMITTED)
@@ -157,38 +126,6 @@ class BackPanelControllerTest : SysuiTestCase() {

    @Test
    fun handlesBackCancelled() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false)
        startTouch()
        // Move once to cross the touch slop
        continueTouch(START_X + touchSlop.toFloat() + 1)
        // Move again to cross the back trigger threshold
        continueTouch(
            START_X + touchSlop + triggerThreshold -
                mBackPanelController.params.deactivationTriggerThreshold
        )
        // Wait threshold duration and hold touch before trigger threshold
        Thread.sleep((MAX_DURATION_ENTRY_BEFORE_ACTIVE_ANIMATION + 1).toLong())
        continueTouch(
            START_X + touchSlop + triggerThreshold -
                mBackPanelController.params.deactivationTriggerThreshold
        )
        clearInvocations(backCallback)
        Thread.sleep(MIN_DURATION_ACTIVE_BEFORE_INACTIVE_ANIMATION)
        // Move in the opposite direction to cross the deactivation threshold and cancel back
        continueTouch(START_X)

        assertThat(mBackPanelController.currentState)
            .isEqualTo(BackPanelController.GestureState.INACTIVE)
        verify(backCallback).setTriggerBack(false)
        verify(vibratorHelper).vibrate(VIBRATE_DEACTIVATED_EFFECT)

        finishTouchActionUp(START_X)
        verify(backCallback).cancelBack()
    }

    @Test
    fun handlesBackCancelled_withOneWayHapticsAPI() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true)
        startTouch()
        // Move once to cross the touch slop
        continueTouch(START_X + touchSlop.toFloat() + 1)