Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationControllerTest.kt +29 −46 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractor import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.statusbar.NotificationShadeWindowController import com.android.systemui.statusbar.StatusBarStateControllerImpl import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.testKosmos import com.android.systemui.util.mockito.eq import com.android.systemui.util.settings.GlobalSettings Loading @@ -56,48 +55,32 @@ import org.mockito.MockitoAnnotations class UnlockedScreenOffAnimationControllerTest : SysuiTestCase() { private lateinit var controller: UnlockedScreenOffAnimationController @Mock private lateinit var keyguardViewMediator: KeyguardViewMediator @Mock private lateinit var dozeParameters: DozeParameters @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var globalSettings: GlobalSettings @Mock private lateinit var centralSurfaces: CentralSurfaces @Mock private lateinit var shadeViewController: ShadeViewController @Mock private lateinit var shadeLockscreenInteractor: ShadeLockscreenInteractor @Mock private lateinit var panelExpansionInteractor: PanelExpansionInteractor @Mock private lateinit var notifShadeWindowController: NotificationShadeWindowController @Mock private lateinit var lightRevealScrim: LightRevealScrim @Mock private lateinit var wakefulnessLifecycle: WakefulnessLifecycle @Mock private lateinit var statusBarStateController: StatusBarStateControllerImpl @Mock private lateinit var interactionJankMonitor: InteractionJankMonitor @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var handler: Handler @Mock private lateinit var keyguardViewMediator: KeyguardViewMediator @Mock private lateinit var dozeParameters: DozeParameters @Mock private lateinit var globalSettings: GlobalSettings @Mock private lateinit var centralSurfaces: CentralSurfaces @Mock private lateinit var shadeViewController: ShadeViewController @Mock private lateinit var shadeLockscreenInteractor: ShadeLockscreenInteractor @Mock private lateinit var panelExpansionInteractor: PanelExpansionInteractor @Mock private lateinit var notifShadeWindowController: NotificationShadeWindowController @Mock private lateinit var lightRevealScrim: LightRevealScrim @Mock private lateinit var wakefulnessLifecycle: WakefulnessLifecycle @Mock private lateinit var statusBarStateController: StatusBarStateControllerImpl @Mock private lateinit var interactionJankMonitor: InteractionJankMonitor @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var handler: Handler val kosmos = testKosmos() @Before fun setUp() { MockitoAnnotations.initMocks(this) controller = UnlockedScreenOffAnimationController( controller = UnlockedScreenOffAnimationController( context, wakefulnessLifecycle, statusBarStateController, { keyguardViewMediator }, keyguardStateController, { dozeParameters }, globalSettings, { notifShadeWindowController }, Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt +5 −30 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ import android.os.Handler import android.os.PowerManager import android.provider.Settings import android.view.Display import android.view.Surface import android.view.View import android.view.WindowManager.fixScale import com.android.app.animation.Interpolators Loading @@ -35,7 +34,6 @@ import com.android.systemui.statusbar.notification.AnimatableProperty import com.android.systemui.statusbar.notification.PropertyAnimator import com.android.systemui.statusbar.notification.stack.AnimationProperties import com.android.systemui.statusbar.notification.stack.StackStateAnimator import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.settings.GlobalSettings import dagger.Lazy import javax.inject.Inject Loading Loading @@ -64,7 +62,6 @@ constructor( private val wakefulnessLifecycle: WakefulnessLifecycle, private val statusBarStateControllerImpl: StatusBarStateControllerImpl, private val keyguardViewMediatorLazy: Lazy<KeyguardViewMediator>, private val keyguardStateController: KeyguardStateController, private val dozeParameters: Lazy<DozeParameters>, private val globalSettings: GlobalSettings, private val notifShadeWindowControllerLazy: Lazy<NotificationShadeWindowController>, Loading Loading @@ -293,13 +290,10 @@ constructor( handler.postDelayed( { // Only run this callback if the device is sleeping (not interactive). This // callback // is removed in onStartedWakingUp, but since that event is asynchronously // dispatched, a race condition could make it possible for this callback to be // run // as the device is waking up. That results in the AOD UI being shown while we // wake // up, with unpredictable consequences. // callback is removed in onStartedWakingUp, but since that event is // asynchronously dispatched, a race condition could make it possible for this // callback to be run as the device is waking up. That results in the AOD UI // being shown while we wake up, with unpredictable consequences. if ( !powerManager.isInteractive(Display.DEFAULT_DISPLAY) && shouldAnimateInKeyguard Loading Loading @@ -357,26 +351,7 @@ constructor( return false } // We currently draw both the light reveal scrim, and the AOD UI, in the shade. If it's // already expanded and showing notifications/QS, the animation looks really messy. For now, // disable it if the notification panel is expanded. if ( (!this::centralSurfaces.isInitialized || panelExpansionInteractorLazy.get().isPanelExpanded) && // Status bar might be expanded because we have started // playing the animation already !isAnimationPlaying() ) { return false } // If we're not allowed to rotate the keyguard, it can only be displayed in zero-degree // portrait. If we're in another orientation, disable the screen off animation so we don't // animate in the keyguard AOD UI sideways or upside down. if ( !keyguardStateController.isKeyguardScreenRotationAllowed && context.display?.rotation != Surface.ROTATION_0 ) { if (!this::centralSurfaces.isInitialized) { return false } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationControllerTest.kt +29 −46 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractor import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.statusbar.NotificationShadeWindowController import com.android.systemui.statusbar.StatusBarStateControllerImpl import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.testKosmos import com.android.systemui.util.mockito.eq import com.android.systemui.util.settings.GlobalSettings Loading @@ -56,48 +55,32 @@ import org.mockito.MockitoAnnotations class UnlockedScreenOffAnimationControllerTest : SysuiTestCase() { private lateinit var controller: UnlockedScreenOffAnimationController @Mock private lateinit var keyguardViewMediator: KeyguardViewMediator @Mock private lateinit var dozeParameters: DozeParameters @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var globalSettings: GlobalSettings @Mock private lateinit var centralSurfaces: CentralSurfaces @Mock private lateinit var shadeViewController: ShadeViewController @Mock private lateinit var shadeLockscreenInteractor: ShadeLockscreenInteractor @Mock private lateinit var panelExpansionInteractor: PanelExpansionInteractor @Mock private lateinit var notifShadeWindowController: NotificationShadeWindowController @Mock private lateinit var lightRevealScrim: LightRevealScrim @Mock private lateinit var wakefulnessLifecycle: WakefulnessLifecycle @Mock private lateinit var statusBarStateController: StatusBarStateControllerImpl @Mock private lateinit var interactionJankMonitor: InteractionJankMonitor @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var handler: Handler @Mock private lateinit var keyguardViewMediator: KeyguardViewMediator @Mock private lateinit var dozeParameters: DozeParameters @Mock private lateinit var globalSettings: GlobalSettings @Mock private lateinit var centralSurfaces: CentralSurfaces @Mock private lateinit var shadeViewController: ShadeViewController @Mock private lateinit var shadeLockscreenInteractor: ShadeLockscreenInteractor @Mock private lateinit var panelExpansionInteractor: PanelExpansionInteractor @Mock private lateinit var notifShadeWindowController: NotificationShadeWindowController @Mock private lateinit var lightRevealScrim: LightRevealScrim @Mock private lateinit var wakefulnessLifecycle: WakefulnessLifecycle @Mock private lateinit var statusBarStateController: StatusBarStateControllerImpl @Mock private lateinit var interactionJankMonitor: InteractionJankMonitor @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var handler: Handler val kosmos = testKosmos() @Before fun setUp() { MockitoAnnotations.initMocks(this) controller = UnlockedScreenOffAnimationController( controller = UnlockedScreenOffAnimationController( context, wakefulnessLifecycle, statusBarStateController, { keyguardViewMediator }, keyguardStateController, { dozeParameters }, globalSettings, { notifShadeWindowController }, Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt +5 −30 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ import android.os.Handler import android.os.PowerManager import android.provider.Settings import android.view.Display import android.view.Surface import android.view.View import android.view.WindowManager.fixScale import com.android.app.animation.Interpolators Loading @@ -35,7 +34,6 @@ import com.android.systemui.statusbar.notification.AnimatableProperty import com.android.systemui.statusbar.notification.PropertyAnimator import com.android.systemui.statusbar.notification.stack.AnimationProperties import com.android.systemui.statusbar.notification.stack.StackStateAnimator import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.settings.GlobalSettings import dagger.Lazy import javax.inject.Inject Loading Loading @@ -64,7 +62,6 @@ constructor( private val wakefulnessLifecycle: WakefulnessLifecycle, private val statusBarStateControllerImpl: StatusBarStateControllerImpl, private val keyguardViewMediatorLazy: Lazy<KeyguardViewMediator>, private val keyguardStateController: KeyguardStateController, private val dozeParameters: Lazy<DozeParameters>, private val globalSettings: GlobalSettings, private val notifShadeWindowControllerLazy: Lazy<NotificationShadeWindowController>, Loading Loading @@ -293,13 +290,10 @@ constructor( handler.postDelayed( { // Only run this callback if the device is sleeping (not interactive). This // callback // is removed in onStartedWakingUp, but since that event is asynchronously // dispatched, a race condition could make it possible for this callback to be // run // as the device is waking up. That results in the AOD UI being shown while we // wake // up, with unpredictable consequences. // callback is removed in onStartedWakingUp, but since that event is // asynchronously dispatched, a race condition could make it possible for this // callback to be run as the device is waking up. That results in the AOD UI // being shown while we wake up, with unpredictable consequences. if ( !powerManager.isInteractive(Display.DEFAULT_DISPLAY) && shouldAnimateInKeyguard Loading Loading @@ -357,26 +351,7 @@ constructor( return false } // We currently draw both the light reveal scrim, and the AOD UI, in the shade. If it's // already expanded and showing notifications/QS, the animation looks really messy. For now, // disable it if the notification panel is expanded. if ( (!this::centralSurfaces.isInitialized || panelExpansionInteractorLazy.get().isPanelExpanded) && // Status bar might be expanded because we have started // playing the animation already !isAnimationPlaying() ) { return false } // If we're not allowed to rotate the keyguard, it can only be displayed in zero-degree // portrait. If we're in another orientation, disable the screen off animation so we don't // animate in the keyguard AOD UI sideways or upside down. if ( !keyguardStateController.isKeyguardScreenRotationAllowed && context.display?.rotation != Surface.ROTATION_0 ) { if (!this::centralSurfaces.isInitialized) { return false } Loading