summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java10
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;