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

Commit 8bf6f7d8 authored by Austin Delgado's avatar Austin Delgado Committed by Android (Google) Code Review
Browse files

Merge "Allow UDFPS touches when keyguard transitions to dozing" into main

parents a59656a1 ce555411
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepositor
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.flags.Flags
import com.android.systemui.flags.fakeFeatureFlagsClassic
import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.ui.viewmodel.fakeDeviceEntryIconViewModelTransition
import com.android.systemui.kosmos.testScope
import com.android.systemui.statusbar.phone.SystemUIDialogManager
@@ -48,6 +50,7 @@ class DeviceEntryUdfpsTouchOverlayViewModelTest : SysuiTestCase() {
        }
    private val systemUIDialogManager = kosmos.systemUIDialogManager
    private val bouncerRepository = kosmos.fakeKeyguardBouncerRepository
    private val keyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository
    private val testScope = kosmos.testScope
    private val deviceEntryIconViewModelTransition = kosmos.fakeDeviceEntryIconViewModelTransition
    private val underTest = kosmos.deviceEntryUdfpsTouchOverlayViewModel
@@ -113,4 +116,19 @@ class DeviceEntryUdfpsTouchOverlayViewModelTest : SysuiTestCase() {
            bouncerRepository.setAlternateVisible(true)
            assertThat(shouldHandleTouches).isTrue()
        }

    @Test
    fun transitioningToDozing_shouldHandleTouchesTrue() =
        testScope.runTest {
            val shouldHandleTouches by collectLastValue(underTest.shouldHandleTouches)

            keyguardTransitionRepository.sendTransitionSteps(
                from = KeyguardState.LOCKSCREEN,
                to = KeyguardState.DOZING,
                testScope = testScope,
            )
            runCurrent()

            assertThat(shouldHandleTouches).isTrue()
        }
}
+9 −3
Original line number Diff line number Diff line
@@ -49,15 +49,21 @@ constructor(
                deviceEntryViewAlphaIsMostlyVisible,
                alternateBouncerInteractor.isVisible,
                systemUIDialogManager.hideAffordancesRequest,
            ) { canTouchDeviceEntryViewAlpha, alternateBouncerVisible, hideAffordancesRequest ->
                deviceEntryIconViewModel.transitioningToDozing,
            ) {
                canTouchDeviceEntryViewAlpha,
                alternateBouncerVisible,
                hideAffordancesRequest,
                toDozing ->
                val shouldHandleTouches =
                    (canTouchDeviceEntryViewAlpha && !hideAffordancesRequest) ||
                        alternateBouncerVisible
                        alternateBouncerVisible ||
                        toDozing
                logger.logDeviceEntryUdfpsTouchOverlayShouldHandleTouches(
                    shouldHandleTouches,
                    canTouchDeviceEntryViewAlpha,
                    alternateBouncerVisible,
                    hideAffordancesRequest
                    hideAffordancesRequest,
                )
                shouldHandleTouches
            }
+5 −0
Original line number Diff line number Diff line
@@ -248,6 +248,11 @@ constructor(

    val isLongPressEnabled: Flow<Boolean> = isInteractive

    val transitioningToDozing: Flow<Boolean> =
        transitionInteractor.startedKeyguardTransitionStep.map { keyguardStep ->
            keyguardStep.to == KeyguardState.DOZING
        }

    val deviceDidNotEnterFromDeviceEntryIcon =
        deviceEntrySourceInteractor.attemptEnterDeviceFromDeviceEntryIcon
            .map { keyguardInteractor.isKeyguardDismissible.value }