Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 793126fe authored by Iliyan Malchev's avatar Iliyan Malchev Committed by Android Git Automerger
Browse files

am 86e85efe: Merge "Set backlight brightness in correct order." into jb-mr1-dev

* commit '86e85efe':
  Set backlight brightness in correct order.
parents f56f10c3 86e85efe
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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);
            }

@@ -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) {
+13 −2
Original line number Diff line number Diff line
@@ -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;
@@ -63,6 +64,15 @@ final class PhotonicModulator {
                    mExecutor.execute(mTask);
                }
            }
            if (sync) {
                while (mPendingChange) {
                    try {
                        mLock.wait();
                    } catch (InterruptedException ex) {
                        // ignore it
                    }
                }
            }
        }
    }

@@ -76,6 +86,7 @@ final class PhotonicModulator {
                    if (newLightValue == mActualLightValue) {
                        mSuspendBlocker.release();
                        mPendingChange = false;
                        mLock.notifyAll();
                        return;
                    }
                    mActualLightValue = newLightValue;