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

Commit 949c6466 authored by Steve Kondik's avatar Steve Kondik
Browse files

livedisplay: Don't depend on automatic brightness

 * Some devices will have this disabled or unavailable. Create the
   controller from DisplayPowerManager and give it a kick during
   screen power changes.

Change-Id: I293100a29cfcc342eef6369dcee76261b5a89f3a
parent 0f705b51
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -183,7 +183,8 @@ class AutomaticBrightnessController {

    public AutomaticBrightnessController(Context context, Callbacks callbacks, Looper looper,
            SensorManager sensorManager, Spline autoBrightnessSpline, int lightSensorWarmUpTime,
            int brightnessMin, int brightnessMax, float dozeScaleFactor) {
            int brightnessMin, int brightnessMax, float dozeScaleFactor,
            LiveDisplayController ldc) {
        mContext = context;
        mCallbacks = callbacks;
        mTwilight = LocalServices.getService(TwilightManager.class);
@@ -193,6 +194,7 @@ class AutomaticBrightnessController {
        mScreenBrightnessRangeMaximum = brightnessMax;
        mLightSensorWarmUpTimeConfig = lightSensorWarmUpTime;
        mDozeScaleFactor = dozeScaleFactor;
        mLiveDisplay = ldc;

        mHandler = new AutomaticBrightnessHandler(looper);
        mAmbientLightRingBuffer = new AmbientLightRingBuffer();
@@ -204,7 +206,6 @@ class AutomaticBrightnessController {
        if (USE_TWILIGHT_ADJUSTMENT) {
            mTwilight.registerListener(mTwilightListener, mHandler);
        }
        mLiveDisplay = new LiveDisplayController(mContext, looper);
    }

    public int getAutomaticScreenBrightness() {
@@ -253,7 +254,6 @@ class AutomaticBrightnessController {
        pw.println("  mScreenAutoBrightnessAdjustment=" + mScreenAutoBrightnessAdjustment);
        pw.println("  mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
        pw.println("  mDozing=" + mDozing);
        mLiveDisplay.dump(pw);;
    }

    private boolean setLightSensorEnabled(boolean enable) {
@@ -456,6 +456,7 @@ class AutomaticBrightnessController {
            }
        }

        // Update LiveDisplay with the current lux
        mLiveDisplay.updateLiveDisplay(mAmbientLux);

        if (USE_TWILIGHT_ADJUSTMENT) {
+10 −1
Original line number Diff line number Diff line
@@ -245,6 +245,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    // The controller for the automatic brightness level.
    private AutomaticBrightnessController mAutomaticBrightnessController;

    // The controller for LiveDisplay
    private final LiveDisplayController mLiveDisplayController;

    // Animators.
    private ObjectAnimator mColorFadeOnAnimator;
    private ObjectAnimator mColorFadeOffAnimator;
@@ -266,6 +269,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        mBlanker = blanker;
        mContext = context;

        mLiveDisplayController = new LiveDisplayController(context, handler.getLooper());

        final Resources resources = context.getResources();
        final int screenBrightnessSettingMinimum = clampAbsoluteBrightness(resources.getInteger(
                com.android.internal.R.integer.config_screenBrightnessSettingMinimum));
@@ -336,7 +341,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                mAutomaticBrightnessController = new AutomaticBrightnessController(mContext, this,
                        handler.getLooper(), sensorManager, screenAutoBrightnessSpline,
                        lightSensorWarmUpTimeConfig, screenBrightnessRangeMinimum,
                        mScreenBrightnessRangeMaximum, dozeScaleFactor);
                        mScreenBrightnessRangeMaximum, dozeScaleFactor, mLiveDisplayController);
            }
        }

@@ -686,6 +691,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            }
        }

        // Update LiveDisplay now
        mLiveDisplayController.updateLiveDisplay();

        // Determine whether the display is ready for use in the newly requested state.
        // Note that we do not wait for the brightness ramp animation to complete before
        // reporting the display is ready because we only need to ensure the screen is in the
@@ -1108,6 +1116,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            mAutomaticBrightnessController.dump(pw);
        }

        mLiveDisplayController.dump(pw);
    }

    private static String proximityToString(int state) {
+5 −1
Original line number Diff line number Diff line
@@ -270,7 +270,11 @@ public class LiveDisplayController {
        }
    }

    public synchronized void updateLiveDisplay(float lux) {
    public void updateLiveDisplay() {
        updateLiveDisplay(mCurrentLux);
    }

    synchronized void updateLiveDisplay(float lux) {
        mCurrentLux = lux;
        mHandler.removeMessages(MSG_UPDATE_LIVE_DISPLAY);
        mHandler.sendEmptyMessage(MSG_UPDATE_LIVE_DISPLAY);