Loading services/java/com/android/server/power/DisplayPowerState.java +7 −5 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ final class DisplayPowerState { private void apply() { if (mDirty != 0) { if ((mDirty & DIRTY_SCREEN_ON) != 0 && !mScreenOn) { mScreenBrightnessModulator.setBrightness(0, true /*sync*/); PowerManagerService.nativeSetScreenState(false); } Loading @@ -246,15 +247,16 @@ final class DisplayPowerState { mElectronBeam.draw(mElectronBeamLevel); } if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON | DIRTY_ELECTRON_BEAM)) != 0) { mScreenBrightnessModulator.setBrightness(mScreenOn ? (int)(mScreenBrightness * mElectronBeamLevel) : 0); } if ((mDirty & DIRTY_SCREEN_ON) != 0 && mScreenOn) { PowerManagerService.nativeSetScreenState(true); } if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON | DIRTY_ELECTRON_BEAM)) != 0 && mScreenOn) { mScreenBrightnessModulator.setBrightness( (int)(mScreenBrightness * mElectronBeamLevel), false /*sync*/); } mDirty = 0; if (mCleanListener != null) { Loading services/java/com/android/server/power/PhotonicModulator.java +13 −2 Original line number Diff line number Diff line Loading @@ -49,11 +49,12 @@ final class PhotonicModulator { } /** * Asynchronously sets the backlight brightness. * Sets the backlight brightness, synchronously or asynchronously. * * @param lightValue The new light value, from 0 to 255. * @param sync If true, waits for the brightness change to complete before returning. */ public void setBrightness(int lightValue) { public void setBrightness(int lightValue, boolean sync) { synchronized (mLock) { if (lightValue != mPendingLightValue) { mPendingLightValue = lightValue; Loading @@ -63,6 +64,15 @@ final class PhotonicModulator { mExecutor.execute(mTask); } } if (sync) { while (mPendingChange) { try { mLock.wait(); } catch (InterruptedException ex) { // ignore it } } } } } Loading @@ -76,6 +86,7 @@ final class PhotonicModulator { if (newLightValue == mActualLightValue) { mSuspendBlocker.release(); mPendingChange = false; mLock.notifyAll(); return; } mActualLightValue = newLightValue; Loading Loading
services/java/com/android/server/power/DisplayPowerState.java +7 −5 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ final class DisplayPowerState { private void apply() { if (mDirty != 0) { if ((mDirty & DIRTY_SCREEN_ON) != 0 && !mScreenOn) { mScreenBrightnessModulator.setBrightness(0, true /*sync*/); PowerManagerService.nativeSetScreenState(false); } Loading @@ -246,15 +247,16 @@ final class DisplayPowerState { mElectronBeam.draw(mElectronBeamLevel); } if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON | DIRTY_ELECTRON_BEAM)) != 0) { mScreenBrightnessModulator.setBrightness(mScreenOn ? (int)(mScreenBrightness * mElectronBeamLevel) : 0); } if ((mDirty & DIRTY_SCREEN_ON) != 0 && mScreenOn) { PowerManagerService.nativeSetScreenState(true); } if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON | DIRTY_ELECTRON_BEAM)) != 0 && mScreenOn) { mScreenBrightnessModulator.setBrightness( (int)(mScreenBrightness * mElectronBeamLevel), false /*sync*/); } mDirty = 0; if (mCleanListener != null) { Loading
services/java/com/android/server/power/PhotonicModulator.java +13 −2 Original line number Diff line number Diff line Loading @@ -49,11 +49,12 @@ final class PhotonicModulator { } /** * Asynchronously sets the backlight brightness. * Sets the backlight brightness, synchronously or asynchronously. * * @param lightValue The new light value, from 0 to 255. * @param sync If true, waits for the brightness change to complete before returning. */ public void setBrightness(int lightValue) { public void setBrightness(int lightValue, boolean sync) { synchronized (mLock) { if (lightValue != mPendingLightValue) { mPendingLightValue = lightValue; Loading @@ -63,6 +64,15 @@ final class PhotonicModulator { mExecutor.execute(mTask); } } if (sync) { while (mPendingChange) { try { mLock.wait(); } catch (InterruptedException ex) { // ignore it } } } } } Loading @@ -76,6 +86,7 @@ final class PhotonicModulator { if (newLightValue == mActualLightValue) { mSuspendBlocker.release(); mPendingChange = false; mLock.notifyAll(); return; } mActualLightValue = newLightValue; Loading