Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.animation.ShadeInterpolation import com.android.systemui.display.data.repository.FocusedDisplayRepository import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.kosmos.testScope Loading Loading @@ -90,6 +91,7 @@ class NotificationShadeDepthControllerTest : SysuiTestCase() { @Mock private lateinit var shadeModeInteractor: ShadeModeInteractor @Mock private lateinit var dumpManager: DumpManager @Mock private lateinit var appZoomOutOptional: Optional<AppZoomOut> @Mock private lateinit var focusedDisplayRepository: FocusedDisplayRepository @Mock private lateinit var root: View @Mock private lateinit var viewRootImpl: ViewRootImpl @Mock private lateinit var windowToken: IBinder Loading Loading @@ -138,9 +140,10 @@ class NotificationShadeDepthControllerTest : SysuiTestCase() { shadeModeInteractor, windowRootViewBlurInteractor, appZoomOutOptional, { shadeDisplayRepository }, focusedDisplayRepository, applicationScope, dumpManager, { shadeDisplayRepository }, ) notificationShadeDepthController.shadeAnimation = shadeAnimation notificationShadeDepthController.brightnessMirrorSpring = brightnessSpring Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt +18 −3 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.systemui.statusbar import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.animation.ValueAnimator import android.app.WindowConfiguration import android.os.SystemClock import android.util.IndentingPrintWriter import android.util.Log import android.util.MathUtils import android.view.Choreographer import android.view.Display import android.view.Display.DEFAULT_DISPLAY import android.view.View import androidx.annotation.VisibleForTesting import androidx.dynamicanimation.animation.FloatPropertyCompat Loading @@ -39,6 +41,7 @@ import com.android.systemui.Flags.spatialModelPushbackInShader import com.android.systemui.animation.ShadeInterpolation import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.display.data.repository.FocusedDisplayRepository import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.plugins.statusbar.StatusBarStateController Loading Loading @@ -86,9 +89,10 @@ constructor( private val shadeModeInteractor: ShadeModeInteractor, private val windowRootViewBlurInteractor: WindowRootViewBlurInteractor, private val appZoomOutOptional: Optional<AppZoomOut>, private val shadeDisplaysRepository: Lazy<ShadeDisplaysRepository>, private val focusedDisplayRepository: FocusedDisplayRepository, @Application private val applicationScope: CoroutineScope, dumpManager: DumpManager, private val shadeDisplaysRepository: Lazy<ShadeDisplaysRepository>, ) : ShadeExpansionListener, Dumpable { companion object { private const val WAKE_UP_ANIMATION_ENABLED = true Loading Loading @@ -127,6 +131,8 @@ constructor( // Only for dumpsys private var lastAppliedBlur = 0 private var isHomeFocused = true val maxBlurRadiusPx = blurUtils.maxBlurRadius // Shade expansion offset that happens when pulling down on a HUN. Loading Loading @@ -334,8 +340,11 @@ constructor( else scrimsVisible && !areBlursDisabledForAppLaunch private fun zoomOutAsScale(zoomOutProgress: Float): Float = if (spatialModelPushbackInShader()) 1.0f - zoomOutProgress * PUSHBACK_SCALE_FOR_APP else 1.0f if (!spatialModelPushbackInShader()) 1.0f else 1.0f - zoomOutProgress * getPushbackScale(isHomeFocused) private fun getPushbackScale(isHomeFocused: Boolean): Float = if (isHomeFocused) PUSHBACK_SCALE_FOR_LAUNCHER else PUSHBACK_SCALE_FOR_APP /** Callback that updates the window blur value and is called only once per frame. */ @VisibleForTesting Loading Loading @@ -477,6 +486,12 @@ constructor( brightnessMirrorSpring.setStiffness(SpringForce.STIFFNESS_LOW) brightnessMirrorSpring.setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY) } applicationScope.launch { focusedDisplayRepository.globallyFocusedTask.collect { focusedTask -> if (focusedTask == null || focusedTask.displayId != DEFAULT_DISPLAY) return@collect isHomeFocused = (focusedTask.activityType == WindowConfiguration.ACTIVITY_TYPE_HOME) } } applicationScope.launch { wallpaperInteractor.wallpaperSupportsAmbientMode.collect { supported -> wallpaperSupportsAmbientMode = supported Loading packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationShadeDepthControllerKosmos.kt +3 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.plugins.statusbar.statusBarStateController import com.android.systemui.shade.data.repository.fakeFocusedDisplayRepository import com.android.systemui.shade.data.repository.shadeDisplaysRepository import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.phone.biometricUnlockController Loading @@ -50,9 +51,10 @@ var Kosmos.notificationShadeDepthController by Fixture { shadeModeInteractor = shadeModeInteractor, windowRootViewBlurInteractor = windowRootViewBlurInteractor, appZoomOutOptional = Optional.empty(), shadeDisplaysRepository = { shadeDisplaysRepository }, focusedDisplayRepository = fakeFocusedDisplayRepository, applicationScope = applicationCoroutineScope, dumpManager = dumpManager, shadeDisplaysRepository = { shadeDisplaysRepository }, ) .apply { root = mock<View>() } } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.animation.ShadeInterpolation import com.android.systemui.display.data.repository.FocusedDisplayRepository import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.kosmos.testScope Loading Loading @@ -90,6 +91,7 @@ class NotificationShadeDepthControllerTest : SysuiTestCase() { @Mock private lateinit var shadeModeInteractor: ShadeModeInteractor @Mock private lateinit var dumpManager: DumpManager @Mock private lateinit var appZoomOutOptional: Optional<AppZoomOut> @Mock private lateinit var focusedDisplayRepository: FocusedDisplayRepository @Mock private lateinit var root: View @Mock private lateinit var viewRootImpl: ViewRootImpl @Mock private lateinit var windowToken: IBinder Loading Loading @@ -138,9 +140,10 @@ class NotificationShadeDepthControllerTest : SysuiTestCase() { shadeModeInteractor, windowRootViewBlurInteractor, appZoomOutOptional, { shadeDisplayRepository }, focusedDisplayRepository, applicationScope, dumpManager, { shadeDisplayRepository }, ) notificationShadeDepthController.shadeAnimation = shadeAnimation notificationShadeDepthController.brightnessMirrorSpring = brightnessSpring Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt +18 −3 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.systemui.statusbar import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.animation.ValueAnimator import android.app.WindowConfiguration import android.os.SystemClock import android.util.IndentingPrintWriter import android.util.Log import android.util.MathUtils import android.view.Choreographer import android.view.Display import android.view.Display.DEFAULT_DISPLAY import android.view.View import androidx.annotation.VisibleForTesting import androidx.dynamicanimation.animation.FloatPropertyCompat Loading @@ -39,6 +41,7 @@ import com.android.systemui.Flags.spatialModelPushbackInShader import com.android.systemui.animation.ShadeInterpolation import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.display.data.repository.FocusedDisplayRepository import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.plugins.statusbar.StatusBarStateController Loading Loading @@ -86,9 +89,10 @@ constructor( private val shadeModeInteractor: ShadeModeInteractor, private val windowRootViewBlurInteractor: WindowRootViewBlurInteractor, private val appZoomOutOptional: Optional<AppZoomOut>, private val shadeDisplaysRepository: Lazy<ShadeDisplaysRepository>, private val focusedDisplayRepository: FocusedDisplayRepository, @Application private val applicationScope: CoroutineScope, dumpManager: DumpManager, private val shadeDisplaysRepository: Lazy<ShadeDisplaysRepository>, ) : ShadeExpansionListener, Dumpable { companion object { private const val WAKE_UP_ANIMATION_ENABLED = true Loading Loading @@ -127,6 +131,8 @@ constructor( // Only for dumpsys private var lastAppliedBlur = 0 private var isHomeFocused = true val maxBlurRadiusPx = blurUtils.maxBlurRadius // Shade expansion offset that happens when pulling down on a HUN. Loading Loading @@ -334,8 +340,11 @@ constructor( else scrimsVisible && !areBlursDisabledForAppLaunch private fun zoomOutAsScale(zoomOutProgress: Float): Float = if (spatialModelPushbackInShader()) 1.0f - zoomOutProgress * PUSHBACK_SCALE_FOR_APP else 1.0f if (!spatialModelPushbackInShader()) 1.0f else 1.0f - zoomOutProgress * getPushbackScale(isHomeFocused) private fun getPushbackScale(isHomeFocused: Boolean): Float = if (isHomeFocused) PUSHBACK_SCALE_FOR_LAUNCHER else PUSHBACK_SCALE_FOR_APP /** Callback that updates the window blur value and is called only once per frame. */ @VisibleForTesting Loading Loading @@ -477,6 +486,12 @@ constructor( brightnessMirrorSpring.setStiffness(SpringForce.STIFFNESS_LOW) brightnessMirrorSpring.setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY) } applicationScope.launch { focusedDisplayRepository.globallyFocusedTask.collect { focusedTask -> if (focusedTask == null || focusedTask.displayId != DEFAULT_DISPLAY) return@collect isHomeFocused = (focusedTask.activityType == WindowConfiguration.ACTIVITY_TYPE_HOME) } } applicationScope.launch { wallpaperInteractor.wallpaperSupportsAmbientMode.collect { supported -> wallpaperSupportsAmbientMode = supported Loading
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationShadeDepthControllerKosmos.kt +3 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.plugins.statusbar.statusBarStateController import com.android.systemui.shade.data.repository.fakeFocusedDisplayRepository import com.android.systemui.shade.data.repository.shadeDisplaysRepository import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.phone.biometricUnlockController Loading @@ -50,9 +51,10 @@ var Kosmos.notificationShadeDepthController by Fixture { shadeModeInteractor = shadeModeInteractor, windowRootViewBlurInteractor = windowRootViewBlurInteractor, appZoomOutOptional = Optional.empty(), shadeDisplaysRepository = { shadeDisplaysRepository }, focusedDisplayRepository = fakeFocusedDisplayRepository, applicationScope = applicationCoroutineScope, dumpManager = dumpManager, shadeDisplaysRepository = { shadeDisplaysRepository }, ) .apply { root = mock<View>() } }