Blank all displays including Wifi Display when screen is off.

Calling blank() on Surface Flinger to turn the screen off is not
enough to ensure that the content is blanked to all virtual displays.
What's more, the black surface left in place by the ElectronBeam may
not completely hide the content (particularly if the display orientation
changes).  To fix this for real, we'll want to move the display power
management code from the power manager into the display manager
but we don't have time for that.

As a work around, force all displays to show an empty layer stack
with no surfaces on it while blanked.

Bug: 7311959
Change-Id: I870c985f9e76f3f2322e5d83cdbbed9ed15b9f10
diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java
index 0a42528..93896af 100644
--- a/services/java/com/android/server/display/DisplayManagerService.java
+++ b/services/java/com/android/server/display/DisplayManagerService.java
@@ -305,6 +305,8 @@
                     DisplayDevice device = mDisplayDevices.get(i);
                     device.blankLocked();
                 }
+
+                scheduleTraversalLocked(false);
             }
         }
     }
@@ -322,6 +324,8 @@
                     DisplayDevice device = mDisplayDevices.get(i);
                     device.unblankLocked();
                 }
+
+                scheduleTraversalLocked(false);
             }
         }
     }
@@ -755,7 +759,9 @@
                     + device.getDisplayDeviceInfoLocked());
             return;
         } else {
-            display.configureDisplayInTransactionLocked(device);
+            boolean isBlanked = (mAllDisplayBlankStateFromPowerManager
+                    == DISPLAY_BLANK_STATE_BLANKED);
+            display.configureDisplayInTransactionLocked(device, isBlanked);
         }
 
         // Update the viewports if needed.