OSDN Git Service

Fix HDMI hotplug display blanking behavior.
authorJeff Brown <jeffbrown@google.com>
Wed, 23 Apr 2014 01:07:24 +0000 (18:07 -0700)
committerJeff Brown <jeffbrown@google.com>
Wed, 23 Apr 2014 01:07:24 +0000 (18:07 -0700)
Bug: 14109146
Change-Id: Ie7de4fb05da210e8c74c795f7896cf9951701aeb

services/core/java/com/android/server/display/LocalDisplayAdapter.java

index b8bf484..096f263 100644 (file)
@@ -96,6 +96,14 @@ final class LocalDisplayAdapter extends DisplayAdapter {
         }
     }
 
+    static boolean shouldBlank(int state) {
+        return state == Display.STATE_OFF;
+    }
+
+    static boolean shouldUnblank(int state) {
+        return state == Display.STATE_ON || state == Display.STATE_DOZING;
+    }
+
     private final class LocalDisplayDevice extends DisplayDevice {
         private final int mBuiltInDisplayId;
         private final SurfaceControl.PhysicalDisplayInfo mPhys;
@@ -175,9 +183,9 @@ final class LocalDisplayAdapter extends DisplayAdapter {
         @Override
         public void requestDisplayStateLocked(int state) {
             if (mState != state) {
-                if (state == Display.STATE_OFF && mState != Display.STATE_OFF) {
+                if (shouldBlank(state) && !shouldBlank(mState)) {
                     SurfaceControl.blankDisplay(getDisplayTokenLocked());
-                } else if (state != Display.STATE_OFF && mState == Display.STATE_OFF) {
+                } else if (shouldUnblank(state) && !shouldUnblank(mState)) {
                     SurfaceControl.unblankDisplay(getDisplayTokenLocked());
                 }
                 mState = state;