Merge "Revert "Fix shouldControlUnlockedScreenOff."" into tm-dev
This commit is contained in:
@@ -292,20 +292,11 @@ public class DozeParameters implements
|
||||
}
|
||||
|
||||
public void updateControlScreenOff() {
|
||||
final boolean controlScreenOff = shouldControlUnlockedScreenOff()
|
||||
|| (!getDisplayNeedsBlanking() && getAlwaysOn() && mKeyguardShowing);
|
||||
setControlScreenOffAnimation(controlScreenOff);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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, or if the display needs
|
||||
* blanking.
|
||||
*/
|
||||
public boolean canControlUnlockedScreenOff() {
|
||||
return getAlwaysOn()
|
||||
&& mFeatureFlags.isEnabled(Flags.LOCKSCREEN_ANIMATIONS)
|
||||
&& !getDisplayNeedsBlanking();
|
||||
if (!getDisplayNeedsBlanking()) {
|
||||
final boolean controlScreenOff =
|
||||
getAlwaysOn() && (mKeyguardShowing || shouldControlUnlockedScreenOff());
|
||||
setControlScreenOffAnimation(controlScreenOff);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -318,7 +309,8 @@ public class DozeParameters implements
|
||||
* disabled for a11y.
|
||||
*/
|
||||
public boolean shouldControlUnlockedScreenOff() {
|
||||
return mUnlockedScreenOffAnimationController.shouldPlayUnlockedScreenOffAnimation();
|
||||
return canControlUnlockedScreenOff()
|
||||
&& mUnlockedScreenOffAnimationController.shouldPlayUnlockedScreenOffAnimation();
|
||||
}
|
||||
|
||||
public boolean shouldDelayKeyguardShow() {
|
||||
@@ -350,6 +342,16 @@ public class DozeParameters implements
|
||||
return getAlwaysOn() && mKeyguardShowing;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.isEnabled(Flags.LOCKSCREEN_ANIMATIONS)
|
||||
&& !getDisplayNeedsBlanking();
|
||||
}
|
||||
|
||||
private boolean getBoolean(String propName, int resId) {
|
||||
return SystemProperties.getBoolean(propName, mResources.getBoolean(resId));
|
||||
}
|
||||
|
||||
@@ -61,14 +61,6 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
) : WakefulnessLifecycle.Observer, ScreenOffAnimation {
|
||||
|
||||
private lateinit var mCentralSurfaces: CentralSurfaces
|
||||
|
||||
/**
|
||||
* Whether or not [initialize] has been called to provide us with the StatusBar,
|
||||
* NotificationPanelViewController, and LightRevealSrim so that we can run the unlocked screen
|
||||
* off animation.
|
||||
*/
|
||||
private var initialized = false
|
||||
|
||||
private lateinit var lightRevealScrim: LightRevealScrim
|
||||
|
||||
private var animatorDurationScale = 1f
|
||||
@@ -124,7 +116,6 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
centralSurfaces: CentralSurfaces,
|
||||
lightRevealScrim: LightRevealScrim
|
||||
) {
|
||||
this.initialized = true
|
||||
this.lightRevealScrim = lightRevealScrim
|
||||
this.mCentralSurfaces = centralSurfaces
|
||||
|
||||
@@ -271,18 +262,6 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
* on the current state of the device.
|
||||
*/
|
||||
fun shouldPlayUnlockedScreenOffAnimation(): Boolean {
|
||||
// If we haven't been initialized yet, we don't have a StatusBar/LightRevealScrim yet, so we
|
||||
// can't perform the animation.
|
||||
if (!initialized) {
|
||||
return false
|
||||
}
|
||||
|
||||
// If the device isn't in a state where we can control unlocked screen off (no AOD enabled,
|
||||
// power save, etc.) then we shouldn't try to do so.
|
||||
if (!dozeParameters.get().canControlUnlockedScreenOff()) {
|
||||
return false
|
||||
}
|
||||
|
||||
// If we explicitly already decided not to play the screen off animation, then never change
|
||||
// our mind.
|
||||
if (decidedToAnimateGoingToSleep == false) {
|
||||
@@ -325,7 +304,7 @@ class UnlockedScreenOffAnimationController @Inject constructor(
|
||||
}
|
||||
|
||||
override fun shouldDelayDisplayDozeTransition(): Boolean =
|
||||
shouldPlayUnlockedScreenOffAnimation()
|
||||
dozeParameters.get().shouldControlUnlockedScreenOff()
|
||||
|
||||
/**
|
||||
* Whether we're doing the light reveal animation or we're done with that and animating in the
|
||||
|
||||
@@ -126,12 +126,6 @@ public class DozeParametersTest extends SysuiTestCase {
|
||||
setAodEnabledForTest(true);
|
||||
setShouldControlUnlockedScreenOffForTest(true);
|
||||
setDisplayNeedsBlankingForTest(false);
|
||||
|
||||
// Default to false here (with one test to make sure that when it returns true, we respect
|
||||
// that). We'll test the specific conditions for this to return true/false in the
|
||||
// UnlockedScreenOffAnimationController's tests.
|
||||
when(mUnlockedScreenOffAnimationController.shouldPlayUnlockedScreenOffAnimation())
|
||||
.thenReturn(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -180,12 +174,9 @@ public class DozeParametersTest extends SysuiTestCase {
|
||||
*/
|
||||
@Test
|
||||
public void testControlUnlockedScreenOffAnimation_dozeAfterScreenOff_false() {
|
||||
mDozeParameters.mKeyguardVisibilityCallback.onKeyguardVisibilityChanged(true);
|
||||
|
||||
// If AOD is disabled, we shouldn't want to control screen off. Also, let's double check
|
||||
// that when that value is updated, we called through to PowerManager.
|
||||
setAodEnabledForTest(false);
|
||||
|
||||
assertFalse(mDozeParameters.shouldControlScreenOff());
|
||||
assertTrue(mPowerManagerDozeAfterScreenOff);
|
||||
|
||||
@@ -197,6 +188,7 @@ public class DozeParametersTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void testControlUnlockedScreenOffAnimationDisabled_dozeAfterScreenOff() {
|
||||
setShouldControlUnlockedScreenOffForTest(true);
|
||||
when(mFeatureFlags.isEnabled(Flags.LOCKSCREEN_ANIMATIONS)).thenReturn(false);
|
||||
|
||||
assertFalse(mDozeParameters.shouldControlUnlockedScreenOff());
|
||||
|
||||
@@ -31,7 +31,6 @@ import com.android.systemui.statusbar.LightRevealScrim
|
||||
import com.android.systemui.statusbar.StatusBarStateControllerImpl
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController
|
||||
import com.android.systemui.util.settings.GlobalSettings
|
||||
import junit.framework.Assert.assertFalse
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
@@ -134,7 +133,7 @@ class UnlockedScreenOffAnimationControllerTest : SysuiTestCase() {
|
||||
*/
|
||||
@Test
|
||||
fun testAodUiShownIfNotInteractive() {
|
||||
`when`(dozeParameters.canControlUnlockedScreenOff()).thenReturn(true)
|
||||
`when`(dozeParameters.shouldControlUnlockedScreenOff()).thenReturn(true)
|
||||
`when`(powerManager.isInteractive).thenReturn(false)
|
||||
|
||||
val callbackCaptor = ArgumentCaptor.forClass(Runnable::class.java)
|
||||
@@ -157,7 +156,7 @@ class UnlockedScreenOffAnimationControllerTest : SysuiTestCase() {
|
||||
*/
|
||||
@Test
|
||||
fun testAodUiNotShownIfInteractive() {
|
||||
`when`(dozeParameters.canControlUnlockedScreenOff()).thenReturn(true)
|
||||
`when`(dozeParameters.shouldControlUnlockedScreenOff()).thenReturn(true)
|
||||
`when`(powerManager.isInteractive).thenReturn(true)
|
||||
|
||||
val callbackCaptor = ArgumentCaptor.forClass(Runnable::class.java)
|
||||
@@ -168,13 +167,4 @@ class UnlockedScreenOffAnimationControllerTest : SysuiTestCase() {
|
||||
|
||||
verify(notificationPanelViewController, never()).showAodUi()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testNoAnimationPlaying_dozeParamsCanNotControlScreenOff() {
|
||||
`when`(dozeParameters.canControlUnlockedScreenOff()).thenReturn(false)
|
||||
|
||||
assertFalse(controller.shouldPlayUnlockedScreenOffAnimation())
|
||||
controller.startAnimation()
|
||||
assertFalse(controller.isAnimationPlaying())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user