Merge "Don't request traversals when updating display brightness." into mnc-dev

This commit is contained in:
Jeff Brown
2015-06-10 21:15:30 +00:00
committed by Android (Google) Code Review

View File

@@ -346,6 +346,8 @@ public final class DisplayManagerService extends SystemService {
synchronized (mTempDisplayStateWorkQueue) { synchronized (mTempDisplayStateWorkQueue) {
try { try {
// Update the display state within the lock. // Update the display state within the lock.
// Note that we do not need to schedule traversals here although it
// may happen as a side-effect of displays changing state.
synchronized (mSyncRoot) { synchronized (mSyncRoot) {
if (mGlobalDisplayState == state if (mGlobalDisplayState == state
&& mGlobalDisplayBrightness == brightness) { && mGlobalDisplayBrightness == brightness) {
@@ -357,8 +359,7 @@ public final class DisplayManagerService extends SystemService {
+ ", brightness=" + brightness + ")"); + ", brightness=" + brightness + ")");
mGlobalDisplayState = state; mGlobalDisplayState = state;
mGlobalDisplayBrightness = brightness; mGlobalDisplayBrightness = brightness;
updateGlobalDisplayStateLocked(mTempDisplayStateWorkQueue); applyGlobalDisplayStateLocked(mTempDisplayStateWorkQueue);
scheduleTraversalLocked(false);
} }
// Setting the display power state can take hundreds of milliseconds // Setting the display power state can take hundreds of milliseconds
@@ -715,6 +716,7 @@ public final class DisplayManagerService extends SystemService {
handleDisplayDeviceRemovedLocked(device); handleDisplayDeviceRemovedLocked(device);
} }
} }
private void handleDisplayDeviceRemovedLocked(DisplayDevice device) { private void handleDisplayDeviceRemovedLocked(DisplayDevice device) {
DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked(); DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked();
if (!mDisplayDevices.remove(device)) { if (!mDisplayDevices.remove(device)) {
@@ -729,7 +731,7 @@ public final class DisplayManagerService extends SystemService {
scheduleTraversalLocked(false); scheduleTraversalLocked(false);
} }
private void updateGlobalDisplayStateLocked(List<Runnable> workQueue) { private void applyGlobalDisplayStateLocked(List<Runnable> workQueue) {
final int count = mDisplayDevices.size(); final int count = mDisplayDevices.size();
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
DisplayDevice device = mDisplayDevices.get(i); DisplayDevice device = mDisplayDevices.get(i);