Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +2 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.launch Loading Loading @@ -287,7 +288,7 @@ constructor( if (KeyguardWmStateRefactor.isEnabled) { // When the refactor is enabled, we no longer use isKeyguardGoingAway. scope.launch { swipeToDismissInteractor.dismissFling.collect { _ -> swipeToDismissInteractor.dismissFling.filterNotNull().collect { _ -> startTransitionTo(KeyguardState.GONE) } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +7 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static com.android.systemui.bouncer.shared.constants.KeyguardBouncerConst import static com.android.systemui.plugins.ActivityStarter.OnDismissAction; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK_PULSING; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; import static com.android.systemui.util.kotlin.JavaAdapterKt.combineFlows; import android.content.Context; Loading Loading @@ -98,6 +97,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.unfold.FoldAodAnimationController; import com.android.systemui.unfold.SysUIUnfoldComponent; import com.android.systemui.user.domain.interactor.SelectedUserInteractor; import com.android.systemui.util.kotlin.JavaAdapter; import dagger.Lazy; Loading Loading @@ -348,6 +348,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb private Lazy<KeyguardSurfaceBehindInteractor> mSurfaceBehindInteractor; private Lazy<KeyguardDismissActionInteractor> mKeyguardDismissActionInteractor; private final JavaAdapter mJavaAdapter; @Inject public StatusBarKeyguardViewManager( Context context, Loading Loading @@ -378,7 +380,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb Lazy<WindowManagerLockscreenVisibilityInteractor> wmLockscreenVisibilityInteractor, Lazy<KeyguardDismissActionInteractor> keyguardDismissActionInteractorLazy, SelectedUserInteractor selectedUserInteractor, Lazy<KeyguardSurfaceBehindInteractor> surfaceBehindInteractor Lazy<KeyguardSurfaceBehindInteractor> surfaceBehindInteractor, JavaAdapter javaAdapter ) { mContext = context; mViewMediatorCallback = callback; Loading Loading @@ -411,6 +414,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mKeyguardDismissActionInteractor = keyguardDismissActionInteractorLazy; mSelectedUserInteractor = selectedUserInteractor; mSurfaceBehindInteractor = surfaceBehindInteractor; mJavaAdapter = javaAdapter; } KeyguardTransitionInteractor mKeyguardTransitionInteractor; Loading Loading @@ -481,8 +485,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb if (KeyguardWmStateRefactor.isEnabled()) { // Show the keyguard views whenever we've told WM that the lockscreen is visible. collectFlow( getViewRootImpl().getView(), mJavaAdapter.alwaysCollectFlow( combineFlows( mWmLockscreenVisibilityInteractor.get().getLockscreenVisibility(), mSurfaceBehindInteractor.get().isAnimatingSurface(), Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt +19 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { keyguardRepository.setKeyguardDismissible(true) runCurrent() shadeRepository.setCurrentFling( FlingInfo(expand = true) // Not a dismiss fling (expand = true). FlingInfo(expand = false) // Is a dismiss fling upward (expand = false). ) runCurrent() Loading @@ -151,6 +151,24 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { ) runCurrent() assertThatRepository(transitionRepository).noTransitionsStarted() } @Test @DisableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) fun testDoesNotTransitionToGone_whenDismissFling_emitsNull() = testScope.runTest { underTest.start() verify(transitionRepository, never()).startTransition(any()) keyguardRepository.setKeyguardDismissible(true) runCurrent() // The fling is null when it a) initializes b) ends and in either case we should not // swipe to unlock. shadeRepository.setCurrentFling(null) runCurrent() assertThatRepository(transitionRepository).noTransitionsStarted() } } packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +5 −2 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.unfold.SysUIUnfoldComponent; import com.android.systemui.user.domain.interactor.SelectedUserInteractor; import com.android.systemui.util.kotlin.JavaAdapter; import com.google.common.truth.Truth; Loading Loading @@ -222,7 +223,8 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { () -> mock(WindowManagerLockscreenVisibilityInteractor.class), () -> mock(KeyguardDismissActionInteractor.class), mSelectedUserInteractor, () -> mock(KeyguardSurfaceBehindInteractor.class)) { () -> mock(KeyguardSurfaceBehindInteractor.class), mock(JavaAdapter.class)) { @Override public ViewRootImpl getViewRootImpl() { return mViewRootImpl; Loading Loading @@ -730,7 +732,8 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { () -> mock(WindowManagerLockscreenVisibilityInteractor.class), () -> mock(KeyguardDismissActionInteractor.class), mSelectedUserInteractor, () -> mock(KeyguardSurfaceBehindInteractor.class)) { () -> mock(KeyguardSurfaceBehindInteractor.class), mock(JavaAdapter.class)) { @Override public ViewRootImpl getViewRootImpl() { return mViewRootImpl; Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +2 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.launch Loading Loading @@ -287,7 +288,7 @@ constructor( if (KeyguardWmStateRefactor.isEnabled) { // When the refactor is enabled, we no longer use isKeyguardGoingAway. scope.launch { swipeToDismissInteractor.dismissFling.collect { _ -> swipeToDismissInteractor.dismissFling.filterNotNull().collect { _ -> startTransitionTo(KeyguardState.GONE) } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +7 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static com.android.systemui.bouncer.shared.constants.KeyguardBouncerConst import static com.android.systemui.plugins.ActivityStarter.OnDismissAction; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK_PULSING; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; import static com.android.systemui.util.kotlin.JavaAdapterKt.combineFlows; import android.content.Context; Loading Loading @@ -98,6 +97,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.unfold.FoldAodAnimationController; import com.android.systemui.unfold.SysUIUnfoldComponent; import com.android.systemui.user.domain.interactor.SelectedUserInteractor; import com.android.systemui.util.kotlin.JavaAdapter; import dagger.Lazy; Loading Loading @@ -348,6 +348,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb private Lazy<KeyguardSurfaceBehindInteractor> mSurfaceBehindInteractor; private Lazy<KeyguardDismissActionInteractor> mKeyguardDismissActionInteractor; private final JavaAdapter mJavaAdapter; @Inject public StatusBarKeyguardViewManager( Context context, Loading Loading @@ -378,7 +380,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb Lazy<WindowManagerLockscreenVisibilityInteractor> wmLockscreenVisibilityInteractor, Lazy<KeyguardDismissActionInteractor> keyguardDismissActionInteractorLazy, SelectedUserInteractor selectedUserInteractor, Lazy<KeyguardSurfaceBehindInteractor> surfaceBehindInteractor Lazy<KeyguardSurfaceBehindInteractor> surfaceBehindInteractor, JavaAdapter javaAdapter ) { mContext = context; mViewMediatorCallback = callback; Loading Loading @@ -411,6 +414,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mKeyguardDismissActionInteractor = keyguardDismissActionInteractorLazy; mSelectedUserInteractor = selectedUserInteractor; mSurfaceBehindInteractor = surfaceBehindInteractor; mJavaAdapter = javaAdapter; } KeyguardTransitionInteractor mKeyguardTransitionInteractor; Loading Loading @@ -481,8 +485,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb if (KeyguardWmStateRefactor.isEnabled()) { // Show the keyguard views whenever we've told WM that the lockscreen is visible. collectFlow( getViewRootImpl().getView(), mJavaAdapter.alwaysCollectFlow( combineFlows( mWmLockscreenVisibilityInteractor.get().getLockscreenVisibility(), mSurfaceBehindInteractor.get().isAnimatingSurface(), Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt +19 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { keyguardRepository.setKeyguardDismissible(true) runCurrent() shadeRepository.setCurrentFling( FlingInfo(expand = true) // Not a dismiss fling (expand = true). FlingInfo(expand = false) // Is a dismiss fling upward (expand = false). ) runCurrent() Loading @@ -151,6 +151,24 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { ) runCurrent() assertThatRepository(transitionRepository).noTransitionsStarted() } @Test @DisableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) fun testDoesNotTransitionToGone_whenDismissFling_emitsNull() = testScope.runTest { underTest.start() verify(transitionRepository, never()).startTransition(any()) keyguardRepository.setKeyguardDismissible(true) runCurrent() // The fling is null when it a) initializes b) ends and in either case we should not // swipe to unlock. shadeRepository.setCurrentFling(null) runCurrent() assertThatRepository(transitionRepository).noTransitionsStarted() } }
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +5 −2 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.unfold.SysUIUnfoldComponent; import com.android.systemui.user.domain.interactor.SelectedUserInteractor; import com.android.systemui.util.kotlin.JavaAdapter; import com.google.common.truth.Truth; Loading Loading @@ -222,7 +223,8 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { () -> mock(WindowManagerLockscreenVisibilityInteractor.class), () -> mock(KeyguardDismissActionInteractor.class), mSelectedUserInteractor, () -> mock(KeyguardSurfaceBehindInteractor.class)) { () -> mock(KeyguardSurfaceBehindInteractor.class), mock(JavaAdapter.class)) { @Override public ViewRootImpl getViewRootImpl() { return mViewRootImpl; Loading Loading @@ -730,7 +732,8 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { () -> mock(WindowManagerLockscreenVisibilityInteractor.class), () -> mock(KeyguardDismissActionInteractor.class), mSelectedUserInteractor, () -> mock(KeyguardSurfaceBehindInteractor.class)) { () -> mock(KeyguardSurfaceBehindInteractor.class), mock(JavaAdapter.class)) { @Override public ViewRootImpl getViewRootImpl() { return mViewRootImpl; Loading