Loading packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/DeviceEntryUdfpsTouchOverlayViewModelTest.kt +18 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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() } } packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/DeviceEntryUdfpsTouchOverlayViewModel.kt +9 −3 Original line number Diff line number Diff line Loading @@ -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 } Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DeviceEntryIconViewModel.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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 } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/DeviceEntryUdfpsTouchOverlayViewModelTest.kt +18 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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() } }
packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/DeviceEntryUdfpsTouchOverlayViewModel.kt +9 −3 Original line number Diff line number Diff line Loading @@ -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 } Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DeviceEntryIconViewModel.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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 } Loading