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

Commit 86e85efe authored by Iliyan Malchev's avatar Iliyan Malchev Committed by Android (Google) Code Review
Browse files

Merge "Set backlight brightness in correct order." into jb-mr1-dev

parents 1f13a98c 735f740f
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;