From 3d9ce7bc6e8062560ba9af1f6afc6641ffec8063 Mon Sep 17 00:00:00 2001 From: Dan Gittik Date: Fri, 13 Apr 2018 15:14:36 +0100 Subject: [PATCH] Added screen brightness override feedback. Added code to reflect the screen brightness override in the brightness slider, and reset any user changes to it to communicate that they're not taking effect. Test: manual (launch an app that sets the screen brightness override and see that it's reflected in the brightness slider, and that any user changes to it are reset). Change-Id: Id6758e6fdfeb80a6c206d08215c1001a437a23c3 Fixes: 78006624 --- .../server/display/DisplayPowerController.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java index 5f4c8efd4d9e2..cfec114941d00 100644 --- a/services/core/java/com/android/server/display/DisplayPowerController.java +++ b/services/core/java/com/android/server/display/DisplayPowerController.java @@ -760,8 +760,14 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call brightness = mScreenBrightnessForVr; } + boolean setBrightnessToOverride = false; if (brightness < 0 && mPowerRequest.screenBrightnessOverride > 0) { brightness = mPowerRequest.screenBrightnessOverride; + // If there's a screen brightness override, we want to reset the brightness to it + // whenever the user changes it, to communicate that these changes aren't taking + // effect. However, for a nicer user experience, we don't do it here, but rather after + // the temporary brightness has been taken into account. + setBrightnessToOverride = true; } final boolean autoBrightnessEnabledInDoze = @@ -784,6 +790,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call brightnessIsTemporary = true; } + // Reset the brightness to the screen brightness override to communicate to the user that + // her changes aren't taking effect. + if (setBrightnessToOverride && !brightnessIsTemporary) { + putScreenBrightnessSetting(brightness); + } + final boolean autoBrightnessAdjustmentChanged = updateAutoBrightnessAdjustment(); if (autoBrightnessAdjustmentChanged) { mTemporaryAutoBrightnessAdjustment = Float.NaN; @@ -867,7 +879,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call brightness = clampScreenBrightness(mCurrentScreenBrightnessSetting); } - // Apply dimming by at least some minimum amount when user activity // timeout is about to expire. if (mPowerRequest.policy == DisplayPowerRequest.POLICY_DIM) {