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.
|
// Skip the animation when the screen is off or suspended.
|
||||||
boolean brightnessAdjusted = false;
|
boolean brightnessAdjusted = false;
|
||||||
final boolean brightnessIsTemporary =
|
final boolean brightnessIsTemporary =
|
||||||
(mBrightnessReason.getReason() == BrightnessReason.REASON_TEMPORARY)
|
(mBrightnessReasonTemp.getReason() == BrightnessReason.REASON_TEMPORARY)
|
||||||
|| mAutomaticBrightnessStrategy
|
|| mAutomaticBrightnessStrategy
|
||||||
.isTemporaryAutoBrightnessAdjustmentApplied();
|
.isTemporaryAutoBrightnessAdjustmentApplied();
|
||||||
if (!mPendingScreenOff) {
|
if (!mPendingScreenOff) {
|
||||||
@@ -2159,11 +2159,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
|||||||
}, mClock.uptimeMillis());
|
}, 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
|
@Override
|
||||||
public float getScreenBrightnessSetting() {
|
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) {
|
private void noteScreenState(int screenState) {
|
||||||
// Log screen state change with display id
|
// Log screen state change with display id
|
||||||
|
|||||||
@@ -41,6 +41,13 @@ public final class BrightnessUtils {
|
|||||||
PowerManager.BRIGHTNESS_MAX);
|
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
|
* A utility to construct the DisplayBrightnessState
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ public class AutomaticBrightnessStrategy {
|
|||||||
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
||||||
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
|
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
|
||||||
mPendingAutoBrightnessAdjustment = Float.isNaN(adj) ? Float.NaN
|
mPendingAutoBrightnessAdjustment = Float.isNaN(adj) ? Float.NaN
|
||||||
: BrightnessUtils.clampAbsoluteBrightness(adj);
|
: BrightnessUtils.clampBrightnessAdjustment(adj);
|
||||||
if (userSwitch) {
|
if (userSwitch) {
|
||||||
processPendingAutoBrightnessAdjustments();
|
processPendingAutoBrightnessAdjustments();
|
||||||
}
|
}
|
||||||
@@ -402,6 +402,6 @@ public class AutomaticBrightnessStrategy {
|
|||||||
private float getAutoBrightnessAdjustmentSetting() {
|
private float getAutoBrightnessAdjustmentSetting() {
|
||||||
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
final float adj = Settings.System.getFloatForUser(mContext.getContentResolver(),
|
||||||
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.0f, UserHandle.USER_CURRENT);
|
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