diff options
3 files changed, 20 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java index a0fdb9dc5b90..b0bda16b1421 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java @@ -36,7 +36,13 @@ public class DozeScreenState implements DozeMachine.Part { * Delay entering low power mode when animating to make sure that we'll have * time to move all elements into their final positions while still at 60 fps. */ - private static final int ENTER_DOZE_DELAY = 3000; + private static final int ENTER_DOZE_DELAY = 6000; + /** + * Hide wallpaper earlier when entering low power mode. The gap between + * hiding the wallpaper and changing the display mode is necessary to hide + * the black frame that's inherent to hardware specs. + */ + public static final int ENTER_DOZE_HIDE_WALLPAPER_DELAY = 2000; private final DozeMachine.Service mDozeService; private final Handler mHandler; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index d2d9c4c9613b..85fac16d1c7b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -30,6 +30,7 @@ import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.doze.AlwaysOnDisplayPolicy; +import com.android.systemui.doze.DozeScreenState; import com.android.systemui.tuner.TunerService; import java.io.PrintWriter; @@ -153,7 +154,8 @@ public class DozeParameters implements TunerService.Tunable { * @return duration in millis. */ public long getWallpaperAodDuration() { - return mAlwaysOnPolicy.wallpaperVisibilityDuration; + return shouldControlScreenOff() ? DozeScreenState.ENTER_DOZE_HIDE_WALLPAPER_DELAY + : mAlwaysOnPolicy.wallpaperVisibilityDuration; } /** diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java index 550a35dc9ffc..532019fe09c6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java @@ -22,6 +22,7 @@ import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import com.android.systemui.SysuiTestCase; +import com.android.systemui.doze.DozeScreenState; import com.android.systemui.statusbar.phone.DozeParameters.IntInOutMatcher; import org.junit.Assert; @@ -218,6 +219,15 @@ public class DozeParametersTest extends SysuiTestCase { verify(dozeParameters.getPowerManager()).setDozeAfterScreenOff(eq(false)); } + @Test + public void test_getWallpaperAodDuration_when_shouldControlScreenOff() { + TestableDozeParameters dozeParameters = new TestableDozeParameters(getContext()); + dozeParameters.setControlScreenOffAnimation(true); + Assert.assertEquals("wallpaper hides faster when controlling screen off", + dozeParameters.getWallpaperAodDuration(), + DozeScreenState.ENTER_DOZE_HIDE_WALLPAPER_DELAY); + } + private class TestableDozeParameters extends DozeParameters { private PowerManager mPowerManager; |