BrightnessChangeEvent works for increasing brightness
BrightnessChangeEvents were only sending when decreasing the brightness. Due to two issues: 1) brightness adjustment was being clamped to 0-1 instead of -1 to +1. (meaning buggy conditions were met when 0.0 == 0.0) 2) the brightness reason that was being read was the old reason, rather than the temporary (new) reason (meaning we were not sending change events correctly). Bug: 282005647 Test: adb shell dumpsys | grep BrightnessChangeEvent Change-Id: I2ada97469b68baee695e06db0c8a0cdbbab1027f
This commit is contained in:
@@ -1454,7 +1454,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
||||
// Skip the animation when the screen is off or suspended.
|
||||
boolean brightnessAdjusted = false;
|
||||
final boolean brightnessIsTemporary =
|
||||
(mBrightnessReason.getReason() == BrightnessReason.REASON_TEMPORARY)
|
||||
(mBrightnessReasonTemp.getReason() == BrightnessReason.REASON_TEMPORARY)
|
||||
|| mAutomaticBrightnessStrategy
|
||||
.isTemporaryAutoBrightnessAdjustmentApplied();
|
||||
if (!mPendingScreenOff) {
|
||||
@@ -2159,11 +2159,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
||||
}, mClock.uptimeMillis());
|
||||
}
|
||||
|
||||
private float getAutoBrightnessAdjustmentSetting() {
|
||||
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
||||
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
|
||||
return Float.isNaN(adj) ? 0.0f : clampAutoBrightnessAdjustment(adj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getScreenBrightnessSetting() {
|
||||
@@ -2436,9 +2431,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
||||
}
|
||||
}
|
||||
|
||||
private static float clampAutoBrightnessAdjustment(float value) {
|
||||
return MathUtils.constrain(value, -1.0f, 1.0f);
|
||||
}
|
||||
|
||||
private void noteScreenState(int screenState) {
|
||||
// Log screen state change with display id
|
||||
|
||||
@@ -41,6 +41,13 @@ public final class BrightnessUtils {
|
||||
PowerManager.BRIGHTNESS_MAX);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clamps the brightness value in the maximum and the minimum brightness adjustment range
|
||||
*/
|
||||
public static float clampBrightnessAdjustment(float value) {
|
||||
return MathUtils.constrain(value, -1.0f, 1.0f);
|
||||
}
|
||||
|
||||
/**
|
||||
* A utility to construct the DisplayBrightnessState
|
||||
*/
|
||||
|
||||
@@ -202,7 +202,7 @@ public class AutomaticBrightnessStrategy {
|
||||
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
||||
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
|
||||
mPendingAutoBrightnessAdjustment = Float.isNaN(adj) ? Float.NaN
|
||||
: BrightnessUtils.clampAbsoluteBrightness(adj);
|
||||
: BrightnessUtils.clampBrightnessAdjustment(adj);
|
||||
if (userSwitch) {
|
||||
processPendingAutoBrightnessAdjustments();
|
||||
}
|
||||
@@ -402,6 +402,6 @@ public class AutomaticBrightnessStrategy {
|
||||
private float getAutoBrightnessAdjustmentSetting() {
|
||||
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
||||
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
|
||||
return Float.isNaN(adj) ? 0.0f : BrightnessUtils.clampAbsoluteBrightness(adj);
|
||||
return Float.isNaN(adj) ? 0.0f : BrightnessUtils.clampBrightnessAdjustment(adj);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user