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

Commit 788edad4 authored by Aayush Gupta's avatar Aayush Gupta
Browse files

Merge remote-tracking branch 'origin/lineage-18.1' into v1-r

parents 35952e3d 00712220
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -211,6 +211,8 @@ class AutomaticBrightnessController {
    private DisplayDeviceConfig mDisplayDeviceConfig;
    private final Injector mInjector;

    private boolean mAutoBrightnessOneShot;

    AutomaticBrightnessController(Callbacks callbacks, Looper looper,
            SensorManager sensorManager, Sensor lightSensor, BrightnessMappingStrategy mapper,
            int lightSensorWarmUpTime, float brightnessMin, float brightnessMax,
@@ -273,6 +275,7 @@ class AutomaticBrightnessController {
        mPendingForegroundAppPackageName = null;
        mForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED;
        mPendingForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED;
        mAutoBrightnessOneShot = false;
    }

    /**
@@ -312,7 +315,8 @@ class AutomaticBrightnessController {

    public void configure(boolean enable, @Nullable BrightnessConfiguration configuration,
            float brightness, boolean userChangedBrightness, float adjustment,
            boolean userChangedAutoBrightnessAdjustment, int displayPolicy) {
            boolean userChangedAutoBrightnessAdjustment, int displayPolicy,
            boolean autoBrightnessOneShot) {
        // While dozing, the application processor may be suspended which will prevent us from
        // receiving new information from the light sensor. On some devices, we may be able to
        // switch to a wake-up light sensor instead but for now we will simply disable the sensor
@@ -321,6 +325,7 @@ class AutomaticBrightnessController {
        boolean dozing = (displayPolicy == DisplayPowerRequest.POLICY_DOZE);
        boolean changed = setBrightnessConfiguration(configuration);
        changed |= setDisplayPolicy(displayPolicy);

        if (userChangedAutoBrightnessAdjustment) {
            changed |= setAutoBrightnessAdjustment(adjustment);
        }
@@ -337,6 +342,8 @@ class AutomaticBrightnessController {
        changed |= setLightSensorEnabled(enable && !dozing);
        if (changed) {
            updateAutoBrightness(false /*sendUpdate*/, userInitiatedChange);
        } else {
            handleSettingsChange(autoBrightnessOneShot);
        }
    }

@@ -352,6 +359,16 @@ class AutomaticBrightnessController {
        return mBrightnessMapper.getDefaultConfig();
    }

    private void handleSettingsChange(boolean autoBrightnessOneShot) {
        if (mAutoBrightnessOneShot && !autoBrightnessOneShot) {
            mSensorManager.registerListener(mLightSensorListener, mLightSensor,
                        mCurrentLightSensorRate * 1000, mHandler);
        } else if (!mAutoBrightnessOneShot && autoBrightnessOneShot) {
            mSensorManager.unregisterListener(mLightSensorListener);
        }
        mAutoBrightnessOneShot = autoBrightnessOneShot;
    }

    private boolean setDisplayPolicy(int policy) {
        if (mDisplayPolicy == policy) {
            return false;
@@ -760,6 +777,9 @@ class AutomaticBrightnessController {
                mCallbacks.updateBrightness();
            }
        }
        if (mAutoBrightnessOneShot) {
            mSensorManager.unregisterListener(mLightSensorListener);
        }
    }

    // Clamps values with float range [0.0-1.0]
+19 −1
Original line number Diff line number Diff line
@@ -65,6 +65,8 @@ import com.android.server.lights.LightsManager;
import com.android.server.lights.LogicalLight;
import com.android.server.policy.WindowManagerPolicy;

import lineageos.providers.LineageSettings;

import java.io.PrintWriter;
import java.util.List;

@@ -396,6 +398,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    // PowerManager.BRIGHTNESS_INVALID_FLOAT when there's no temporary adjustment set.
    private float mTemporaryAutoBrightnessAdjustment;

    // Wether auto brightness is applied one shot when screen is turned on
    private boolean mAutoBrightnessOneShot;

    // Animators.
    private ObjectAnimator mColorFadeOnAnimator;
    private ObjectAnimator mColorFadeOffAnimator;
@@ -424,6 +429,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        mContext = context;
        mBrightnessSynchronizer = new BrightnessSynchronizer(context);
        mDisplayDevice = displayDevice;
        mAutoBrightnessOneShot = getAutoBrightnessOneShotSetting();

        PowerManager pm =  context.getSystemService(PowerManager.class);
        DisplayDeviceConfig displayDeviceConfig = mDisplayDevice.getDisplayDeviceConfig();
@@ -731,6 +737,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        mContext.getContentResolver().registerContentObserver(
                Settings.System.getUriFor(Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ),
                false /*notifyForDescendants*/, mSettingsObserver, UserHandle.USER_ALL);
        mContext.getContentResolver().registerContentObserver(
                LineageSettings.System.getUriFor(LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT),
                false /*notifyForDescendants*/, mSettingsObserver, UserHandle.USER_ALL);
    }

    private final Animator.AnimatorListener mAnimatorListener = new Animator.AnimatorListener() {
@@ -958,6 +967,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            brightnessAdjustmentFlags = BrightnessReason.ADJUSTMENT_AUTO;
            mAppliedTemporaryAutoBrightnessAdjustment = false;
        }

        // Apply brightness boost.
        // We do this here after deciding whether auto-brightness is enabled so that we don't
        // disable the light sensor during this temporary state.  That way when boost ends we will
@@ -983,7 +993,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                    mBrightnessConfiguration,
                    mLastUserSetScreenBrightness,
                    userSetBrightnessChanged, autoBrightnessAdjustment,
                    autoBrightnessAdjustmentChanged, mPowerRequest.policy);
                    autoBrightnessAdjustmentChanged, mPowerRequest.policy,
                    mAutoBrightnessOneShot);
        }

        if (mBrightnessTracker != null) {
@@ -1695,9 +1706,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        // We don't bother with a pending variable for VR screen brightness since we just
        // immediately adapt to it.
        mScreenBrightnessForVr = getScreenBrightnessForVrSetting();
        mAutoBrightnessOneShot = getAutoBrightnessOneShotSetting();
        sendUpdatePowerState();
    }

    private boolean getAutoBrightnessOneShotSetting() {
        return LineageSettings.System.getIntForUser(
                mContext.getContentResolver(), LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT,
                0, UserHandle.USER_CURRENT) == 1 ? true : false;
    }

    private float getAutoBrightnessAdjustmentSetting() {
        final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
                Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);