Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDreamingTransitionViewModelTest.kt +35 −0 Original line number Diff line number Diff line Loading @@ -16,8 +16,10 @@ package com.android.systemui.keyguard.ui.viewmodel import android.platform.test.annotations.EnableFlags import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectValues import com.android.systemui.flags.DisableSceneContainer Loading Loading @@ -54,6 +56,7 @@ class PrimaryBouncerToDreamingTransitionViewModelTest : SysuiTestCase() { fun blurRadiusGoesToMinImmediately() = testScope.runTest { val values by collectValues(underTest.windowBlurRadius) kosmos.keyguardWindowBlurTestUtil.shadeExpanded(false) kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius( transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f), Loading @@ -64,6 +67,38 @@ class PrimaryBouncerToDreamingTransitionViewModelTest : SysuiTestCase() { ) } @Test @EnableFlags(Flags.FLAG_NOTIFICATION_SHADE_BLUR) fun blurRadiusRemainsAtMaxIfShadeIsExpandedAndShadeBlurIsEnabled() = testScope.runTest { val values by collectValues(underTest.windowBlurRadius) kosmos.keyguardWindowBlurTestUtil.shadeExpanded(true) kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius( transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f), startValue = kosmos.blurConfig.maxBlurRadiusPx, endValue = kosmos.blurConfig.maxBlurRadiusPx, actualValuesProvider = { values }, transitionFactory = ::step, checkInterpolatedValues = false, ) } @Test fun notificationBlurDropsToMinWhenGoingBackFromPrimaryBouncerToDreaming() = testScope.runTest { val values by collectValues(underTest.notificationBlurRadius) kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius( transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f), startValue = kosmos.blurConfig.minBlurRadiusPx, endValue = kosmos.blurConfig.minBlurRadiusPx, actualValuesProvider = { values }, transitionFactory = ::step, checkInterpolatedValues = false, ) } private fun step(value: Float, state: TransitionState = RUNNING): TransitionStep { return TransitionStep( from = KeyguardState.PRIMARY_BOUNCER, Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDreamingTransitionViewModel.kt +21 −11 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.keyguard.ui.viewmodel import com.android.systemui.Flags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.interactor.FromPrimaryBouncerTransitionInteractor import com.android.systemui.keyguard.shared.model.Edge Loading @@ -27,7 +28,6 @@ import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition import com.android.systemui.scene.shared.model.Overlays import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow @SysUISingleton class PrimaryBouncerToDreamingTransitionViewModel Loading @@ -43,17 +43,27 @@ constructor(blurConfig: BlurConfig, animationFlow: KeyguardTransitionAnimationFl .setupWithoutSceneContainer(edge = Edge.create(from = PRIMARY_BOUNCER, to = DREAMING)) override val windowBlurRadius: Flow<Float> = transitionAnimation.sharedFlow( onStart = { blurConfig.maxBlurRadiusPx }, onStep = { transitionAnimation.sharedFlowWithShade( onStep = { progress, isShadeExpanded -> if (isShadeExpanded && Flags.notificationShadeBlur()) { blurConfig.maxBlurRadiusPx } else { transitionProgressToBlurRadius( blurConfig.maxBlurRadiusPx, endBlurRadius = blurConfig.minBlurRadiusPx, transitionProgress = it, transitionProgress = progress, ) } }, onFinish = { isShadeExpanded -> if (isShadeExpanded && Flags.notificationShadeBlur()) { blurConfig.maxBlurRadiusPx } else { blurConfig.minBlurRadiusPx } }, onFinish = { blurConfig.minBlurRadiusPx }, ) override val notificationBlurRadius: Flow<Float> = emptyFlow() override val notificationBlurRadius: Flow<Float> = transitionAnimation.immediatelyTransitionTo(blurConfig.minBlurRadiusPx) } packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +1 −1 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ import javax.inject.Provider; @SysUISingleton public class NotificationStackScrollLayoutController implements Dumpable { private static final String TAG = "StackScrollerController"; private static final boolean DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG); private static final boolean DEBUG = Compile.IS_DEBUG || Log.isLoggable(TAG, Log.DEBUG); private static final String HIGH_PRIORITY = "high_priority"; /** Delay in milli-seconds before shade closes for clear all. */ private static final int DELAY_BEFORE_SHADE_CLOSE = 200; Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDreamingTransitionViewModelTest.kt +35 −0 Original line number Diff line number Diff line Loading @@ -16,8 +16,10 @@ package com.android.systemui.keyguard.ui.viewmodel import android.platform.test.annotations.EnableFlags import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectValues import com.android.systemui.flags.DisableSceneContainer Loading Loading @@ -54,6 +56,7 @@ class PrimaryBouncerToDreamingTransitionViewModelTest : SysuiTestCase() { fun blurRadiusGoesToMinImmediately() = testScope.runTest { val values by collectValues(underTest.windowBlurRadius) kosmos.keyguardWindowBlurTestUtil.shadeExpanded(false) kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius( transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f), Loading @@ -64,6 +67,38 @@ class PrimaryBouncerToDreamingTransitionViewModelTest : SysuiTestCase() { ) } @Test @EnableFlags(Flags.FLAG_NOTIFICATION_SHADE_BLUR) fun blurRadiusRemainsAtMaxIfShadeIsExpandedAndShadeBlurIsEnabled() = testScope.runTest { val values by collectValues(underTest.windowBlurRadius) kosmos.keyguardWindowBlurTestUtil.shadeExpanded(true) kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius( transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f), startValue = kosmos.blurConfig.maxBlurRadiusPx, endValue = kosmos.blurConfig.maxBlurRadiusPx, actualValuesProvider = { values }, transitionFactory = ::step, checkInterpolatedValues = false, ) } @Test fun notificationBlurDropsToMinWhenGoingBackFromPrimaryBouncerToDreaming() = testScope.runTest { val values by collectValues(underTest.notificationBlurRadius) kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius( transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f), startValue = kosmos.blurConfig.minBlurRadiusPx, endValue = kosmos.blurConfig.minBlurRadiusPx, actualValuesProvider = { values }, transitionFactory = ::step, checkInterpolatedValues = false, ) } private fun step(value: Float, state: TransitionState = RUNNING): TransitionStep { return TransitionStep( from = KeyguardState.PRIMARY_BOUNCER, Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDreamingTransitionViewModel.kt +21 −11 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.keyguard.ui.viewmodel import com.android.systemui.Flags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.interactor.FromPrimaryBouncerTransitionInteractor import com.android.systemui.keyguard.shared.model.Edge Loading @@ -27,7 +28,6 @@ import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition import com.android.systemui.scene.shared.model.Overlays import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow @SysUISingleton class PrimaryBouncerToDreamingTransitionViewModel Loading @@ -43,17 +43,27 @@ constructor(blurConfig: BlurConfig, animationFlow: KeyguardTransitionAnimationFl .setupWithoutSceneContainer(edge = Edge.create(from = PRIMARY_BOUNCER, to = DREAMING)) override val windowBlurRadius: Flow<Float> = transitionAnimation.sharedFlow( onStart = { blurConfig.maxBlurRadiusPx }, onStep = { transitionAnimation.sharedFlowWithShade( onStep = { progress, isShadeExpanded -> if (isShadeExpanded && Flags.notificationShadeBlur()) { blurConfig.maxBlurRadiusPx } else { transitionProgressToBlurRadius( blurConfig.maxBlurRadiusPx, endBlurRadius = blurConfig.minBlurRadiusPx, transitionProgress = it, transitionProgress = progress, ) } }, onFinish = { isShadeExpanded -> if (isShadeExpanded && Flags.notificationShadeBlur()) { blurConfig.maxBlurRadiusPx } else { blurConfig.minBlurRadiusPx } }, onFinish = { blurConfig.minBlurRadiusPx }, ) override val notificationBlurRadius: Flow<Float> = emptyFlow() override val notificationBlurRadius: Flow<Float> = transitionAnimation.immediatelyTransitionTo(blurConfig.minBlurRadiusPx) }
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +1 −1 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ import javax.inject.Provider; @SysUISingleton public class NotificationStackScrollLayoutController implements Dumpable { private static final String TAG = "StackScrollerController"; private static final boolean DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG); private static final boolean DEBUG = Compile.IS_DEBUG || Log.isLoggable(TAG, Log.DEBUG); private static final String HIGH_PRIORITY = "high_priority"; /** Delay in milli-seconds before shade closes for clear all. */ private static final int DELAY_BEFORE_SHADE_CLOSE = 200; Loading