From 4acbedb4906c22a8dd64ed85e784370cc5f66593 Mon Sep 17 00:00:00 2001 From: Santos Cordon Date: Fri, 7 Jun 2019 17:20:41 +0100 Subject: [PATCH] Ignore brightness change thresholds for manual changes. Bug: 131395565 Test: Manual - set screen_brightness to 32, then 26. Verify it changes. Verify that threshold still hold for small sensor changes. Change-Id: I9d9521d9dcfabdeb57eb77b4d968aa0e0e53b946 --- .../server/display/AutomaticBrightnessController.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/display/AutomaticBrightnessController.java b/services/core/java/com/android/server/display/AutomaticBrightnessController.java index 6d7dff5736fa9..31632dc007a51 100644 --- a/services/core/java/com/android/server/display/AutomaticBrightnessController.java +++ b/services/core/java/com/android/server/display/AutomaticBrightnessController.java @@ -322,7 +322,7 @@ class AutomaticBrightnessController { } changed |= setLightSensorEnabled(enable && !dozing); if (changed) { - updateAutoBrightness(false /*sendUpdate*/); + updateAutoBrightness(false /*sendUpdate*/, userInitiatedChange); } } @@ -667,7 +667,7 @@ class AutomaticBrightnessController { "mAmbientLightRingBuffer=" + mAmbientLightRingBuffer + ", " + "mAmbientLux=" + mAmbientLux); } - updateAutoBrightness(true); + updateAutoBrightness(true /* sendUpdate */, false /* isManuallySet */); } long nextBrightenTransition = nextAmbientLightBrighteningTransition(time); @@ -697,7 +697,7 @@ class AutomaticBrightnessController { + "mAmbientLightRingBuffer=" + mAmbientLightRingBuffer + ", " + "mAmbientLux=" + mAmbientLux); } - updateAutoBrightness(true); + updateAutoBrightness(true /* sendUpdate */, false /* isManuallySet */); nextBrightenTransition = nextAmbientLightBrighteningTransition(time); nextDarkenTransition = nextAmbientLightDarkeningTransition(time); } @@ -717,7 +717,7 @@ class AutomaticBrightnessController { mHandler.sendEmptyMessageAtTime(MSG_UPDATE_AMBIENT_LUX, nextTransitionTime); } - private void updateAutoBrightness(boolean sendUpdate) { + private void updateAutoBrightness(boolean sendUpdate, boolean isManuallySet) { if (!mAmbientLuxValid) { return; } @@ -732,6 +732,7 @@ class AutomaticBrightnessController { // in which case we ignore the new screen brightness if it doesn't differ enough from the // previous one. if (mScreenAutoBrightness != -1 + && !isManuallySet && newScreenAutoBrightness > mScreenDarkeningThreshold && newScreenAutoBrightness < mScreenBrighteningThreshold) { if (mLoggingEnabled) { @@ -879,7 +880,7 @@ class AutomaticBrightnessController { mPendingForegroundAppPackageName = null; mForegroundAppCategory = mPendingForegroundAppCategory; mPendingForegroundAppCategory = ApplicationInfo.CATEGORY_UNDEFINED; - updateAutoBrightness(true /* sendUpdate */); + updateAutoBrightness(true /* sendUpdate */, false /* isManuallySet */); } private final class AutomaticBrightnessHandler extends Handler {