Loading services/core/java/com/android/server/display/AutomaticBrightnessController.java +21 −1 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -273,6 +275,7 @@ class AutomaticBrightnessController { mPendingForegroundAppPackageName = null; mForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED; mPendingForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED; mAutoBrightnessOneShot = false; } /** Loading Loading @@ -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 Loading @@ -321,6 +325,7 @@ class AutomaticBrightnessController { boolean dozing = (displayPolicy == DisplayPowerRequest.POLICY_DOZE); boolean changed = setBrightnessConfiguration(configuration); changed |= setDisplayPolicy(displayPolicy); if (userChangedAutoBrightnessAdjustment) { changed |= setAutoBrightnessAdjustment(adjustment); } Loading @@ -337,6 +342,8 @@ class AutomaticBrightnessController { changed |= setLightSensorEnabled(enable && !dozing); if (changed) { updateAutoBrightness(false /*sendUpdate*/, userInitiatedChange); } else { handleSettingsChange(autoBrightnessOneShot); } } Loading @@ -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; Loading Loading @@ -760,6 +777,9 @@ class AutomaticBrightnessController { mCallbacks.updateBrightness(); } } if (mAutoBrightnessOneShot) { mSensorManager.unregisterListener(mLightSensorListener); } } // Clamps values with float range [0.0-1.0] Loading services/core/java/com/android/server/display/DisplayPowerController.java +19 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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() { Loading Loading @@ -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 Loading @@ -983,7 +993,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mBrightnessConfiguration, mLastUserSetScreenBrightness, userSetBrightnessChanged, autoBrightnessAdjustment, autoBrightnessAdjustmentChanged, mPowerRequest.policy); autoBrightnessAdjustmentChanged, mPowerRequest.policy, mAutoBrightnessOneShot); } if (mBrightnessTracker != null) { Loading Loading @@ -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); Loading Loading
services/core/java/com/android/server/display/AutomaticBrightnessController.java +21 −1 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -273,6 +275,7 @@ class AutomaticBrightnessController { mPendingForegroundAppPackageName = null; mForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED; mPendingForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED; mAutoBrightnessOneShot = false; } /** Loading Loading @@ -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 Loading @@ -321,6 +325,7 @@ class AutomaticBrightnessController { boolean dozing = (displayPolicy == DisplayPowerRequest.POLICY_DOZE); boolean changed = setBrightnessConfiguration(configuration); changed |= setDisplayPolicy(displayPolicy); if (userChangedAutoBrightnessAdjustment) { changed |= setAutoBrightnessAdjustment(adjustment); } Loading @@ -337,6 +342,8 @@ class AutomaticBrightnessController { changed |= setLightSensorEnabled(enable && !dozing); if (changed) { updateAutoBrightness(false /*sendUpdate*/, userInitiatedChange); } else { handleSettingsChange(autoBrightnessOneShot); } } Loading @@ -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; Loading Loading @@ -760,6 +777,9 @@ class AutomaticBrightnessController { mCallbacks.updateBrightness(); } } if (mAutoBrightnessOneShot) { mSensorManager.unregisterListener(mLightSensorListener); } } // Clamps values with float range [0.0-1.0] Loading
services/core/java/com/android/server/display/DisplayPowerController.java +19 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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() { Loading Loading @@ -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 Loading @@ -983,7 +993,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mBrightnessConfiguration, mLastUserSetScreenBrightness, userSetBrightnessChanged, autoBrightnessAdjustment, autoBrightnessAdjustmentChanged, mPowerRequest.policy); autoBrightnessAdjustmentChanged, mPowerRequest.policy, mAutoBrightnessOneShot); } if (mBrightnessTracker != null) { Loading Loading @@ -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); Loading