Check whether doze is enabled before starting the screen off animation.
We should always have been doing this, but it was masked by the WM color-fade screen off animation and was only visible in certain situations (such as AOD enabled but suppressed by power saver). Fixes: 192380279 Test: screen off with/without power saver Change-Id: I88e3479173cfd32675d45a2801e5ab7518b4d8b0
This commit is contained in:
@@ -223,8 +223,15 @@ public class DozeParameters implements TunerService.Tunable,
|
||||
* then abruptly showing AOD.
|
||||
*/
|
||||
public boolean shouldControlUnlockedScreenOff() {
|
||||
return getAlwaysOn() && mFeatureFlags.useNewLockscreenAnimations()
|
||||
&& mUnlockedScreenOffAnimationController.shouldPlayUnlockedScreenOffAnimation();
|
||||
return mUnlockedScreenOffAnimationController.shouldPlayUnlockedScreenOffAnimation();
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether we're capable of controlling the screen off animation if we want to. This isn't
|
||||
* possible if AOD isn't even enabled or if the flag is disabled.
|
||||
*/
|
||||
public boolean canControlUnlockedScreenOff() {
|
||||
return getAlwaysOn() && mFeatureFlags.useNewLockscreenAnimations();
|
||||
}
|
||||
|
||||
private boolean getBoolean(String propName, int resId) {
|
||||
|
||||
@@ -45,7 +45,8 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
private val wakefulnessLifecycle: WakefulnessLifecycle,
|
||||
private val statusBarStateControllerImpl: StatusBarStateControllerImpl,
|
||||
private val keyguardViewMediatorLazy: dagger.Lazy<KeyguardViewMediator>,
|
||||
private val keyguardStateController: KeyguardStateController
|
||||
private val keyguardStateController: KeyguardStateController,
|
||||
private val dozeParameters: dagger.Lazy<DozeParameters>
|
||||
) : WakefulnessLifecycle.Observer {
|
||||
private val handler = Handler()
|
||||
|
||||
@@ -146,7 +147,7 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
}
|
||||
|
||||
override fun onStartedGoingToSleep() {
|
||||
if (shouldPlayUnlockedScreenOffAnimation()) {
|
||||
if (dozeParameters.get().shouldControlUnlockedScreenOff()) {
|
||||
lightRevealAnimationPlaying = true
|
||||
lightRevealAnimator.start()
|
||||
|
||||
@@ -164,6 +165,10 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
* on the current state of the device.
|
||||
*/
|
||||
fun shouldPlayUnlockedScreenOffAnimation(): Boolean {
|
||||
if (!dozeParameters.get().canControlUnlockedScreenOff()) {
|
||||
return false
|
||||
}
|
||||
|
||||
// We only play the unlocked screen off animation if we are... unlocked.
|
||||
if (statusBarStateControllerImpl.state != StatusBarState.SHADE) {
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user