From 32dafe25ac2e06f127f48d6a5826537e11575f52 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Fri, 19 Oct 2012 17:04:30 -0700 Subject: Reduce screen on/off latency. Reduce latency of screen on/off and improve how it is synchronized with backlight changes. Screen state changes are no longer posted to vsync which should save time. What's more, the state change occurs on a separate thread so we no longer run the risk of blocking the Looper for a long time while waiting for the screen to turn on or off. Bug: 7382919 Bug: 7139924 Change-Id: I375950d1b07e22fcb94efb82892fd817e2f780dc --- .../com/android/server/power/DisplayPowerController.java | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'services/java/com/android/server/power/DisplayPowerController.java') diff --git a/services/java/com/android/server/power/DisplayPowerController.java b/services/java/com/android/server/power/DisplayPowerController.java index 661b949..ba5a475 100644 --- a/services/java/com/android/server/power/DisplayPowerController.java +++ b/services/java/com/android/server/power/DisplayPowerController.java @@ -30,7 +30,6 @@ import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.hardware.SystemSensorManager; import android.hardware.display.DisplayManager; -import android.os.AsyncTask; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -44,7 +43,6 @@ import android.util.TimeUtils; import android.view.Display; import java.io.PrintWriter; -import java.util.concurrent.Executor; /** * Controls the power state of the display. @@ -161,9 +159,6 @@ final class DisplayPowerController { // Notifier for sending asynchronous notifications. private final Notifier mNotifier; - // A suspend blocker. - private final SuspendBlocker mSuspendBlocker; - // The display blanker. private final DisplayBlanker mDisplayBlanker; @@ -339,12 +334,11 @@ final class DisplayPowerController { * Creates the display power controller. */ public DisplayPowerController(Looper looper, Context context, Notifier notifier, - LightsService lights, TwilightService twilight, SuspendBlocker suspendBlocker, + LightsService lights, TwilightService twilight, DisplayBlanker displayBlanker, Callbacks callbacks, Handler callbackHandler) { mHandler = new DisplayControllerHandler(looper); mNotifier = notifier; - mSuspendBlocker = suspendBlocker; mDisplayBlanker = displayBlanker; mCallbacks = callbacks; mCallbackHandler = callbackHandler; @@ -513,14 +507,10 @@ final class DisplayPowerController { } private void initialize() { - final Executor executor = AsyncTask.THREAD_POOL_EXECUTOR; Display display = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY); mPowerState = new DisplayPowerState( - new ElectronBeam(display), - new PhotonicModulator(executor, - mLights.getLight(LightsService.LIGHT_ID_BACKLIGHT), - mSuspendBlocker), - mDisplayBlanker); + new ElectronBeam(display), mDisplayBlanker, + mLights.getLight(LightsService.LIGHT_ID_BACKLIGHT)); mElectronBeamOnAnimator = ObjectAnimator.ofFloat( mPowerState, DisplayPowerState.ELECTRON_BEAM_LEVEL, 0.0f, 1.0f); -- cgit v1.1