summaryrefslogtreecommitdiffstats
path: root/services/jni
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2012-06-07 00:16:02 -0700
committerColin Cross <ccross@android.com>2012-06-07 14:01:22 -0700
commitdccb2c16e5201e87b0bc7be778f7ef2d9d043783 (patch)
tree1d0300a7a3b8e2681c8535dcecb3da0f85a21b06 /services/jni
parente4beeb8e3c4fc94c4273330980bbd89a6da5a48d (diff)
downloadframeworks_base-dccb2c16e5201e87b0bc7be778f7ef2d9d043783.zip
frameworks_base-dccb2c16e5201e87b0bc7be778f7ef2d9d043783.tar.gz
frameworks_base-dccb2c16e5201e87b0bc7be778f7ef2d9d043783.tar.bz2
PowerManagerService: call surfaceflinger blank and unblank through binder
Synchronize with SurfaceFlinger during screen off and on to ensure that a black frame has been drawn on the display, and then trigger all early suspend handlers on devices that have early suspend, as well as PowerHAL operations. Change-Id: I8a5ad5a84c9e80ce5bb8f7f0b09b064e2b9ad4ef
Diffstat (limited to 'services/jni')
-rw-r--r--services/jni/com_android_server_PowerManagerService.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/services/jni/com_android_server_PowerManagerService.cpp b/services/jni/com_android_server_PowerManagerService.cpp
index 0904bdd..2b8715c 100644
--- a/services/jni/com_android_server_PowerManagerService.cpp
+++ b/services/jni/com_android_server_PowerManagerService.cpp
@@ -177,12 +177,15 @@ static void nativeReleaseWakeLock(JNIEnv *env, jobject clazz, jstring idObj) {
}
static int nativeSetScreenState(JNIEnv *env, jobject clazz, jboolean on) {
+ sp<ISurfaceComposer> s(ComposerService::getComposerService());
if (on) {
autosuspend_disable();
if (gPowerModule) {
gPowerModule->setInteractive(gPowerModule, true);
}
+ s->unblank();
} else {
+ s->blank();
if (gPowerModule) {
gPowerModule->setInteractive(gPowerModule, false);
}