From 5ca08f6b5618accecc1aa0d23a39c5abc46726f7 Mon Sep 17 00:00:00 2001 From: Rupesh Bansal Date: Sat, 25 Feb 2023 14:05:27 +0000 Subject: [PATCH] Remove BrightnessConfiguration from BrightnessTracker This will help in decouling the depedency between BrightnessTracker and BrightnessConfiguration. In future, with the introduction of AutomaticBrightnessStrategy, this will help in keeping DisplayBrightnessController independent of BrightnessConfiguration Bug: 270793321 Test: atest BrightnessTracker Change-Id: Icce9d6a45911fadc9ec215f9b251103bcfd1e35d --- .../server/display/BrightnessTracker.java | 25 ++++++++----------- .../display/DisplayPowerController.java | 3 ++- .../display/DisplayPowerController2.java | 3 ++- .../server/display/BrightnessTrackerTest.java | 11 +++----- 4 files changed, 18 insertions(+), 24 deletions(-) diff --git a/services/core/java/com/android/server/display/BrightnessTracker.java b/services/core/java/com/android/server/display/BrightnessTracker.java index 6e1640d545fe0..0307f84c9de70 100644 --- a/services/core/java/com/android/server/display/BrightnessTracker.java +++ b/services/core/java/com/android/server/display/BrightnessTracker.java @@ -35,7 +35,6 @@ import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.hardware.display.AmbientBrightnessDayStats; import android.hardware.display.BrightnessChangeEvent; -import android.hardware.display.BrightnessConfiguration; import android.hardware.display.ColorDisplayManager; import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManagerInternal; @@ -126,7 +125,7 @@ public class BrightnessTracker { private static final int MSG_BRIGHTNESS_CHANGED = 1; private static final int MSG_STOP_SENSOR_LISTENER = 2; private static final int MSG_START_SENSOR_LISTENER = 3; - private static final int MSG_BRIGHTNESS_CONFIG_CHANGED = 4; + private static final int MSG_SHOULD_COLLECT_COLOR_SAMPLE_CHANGED = 4; private static final int MSG_SENSOR_CHANGED = 5; private static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); @@ -162,7 +161,7 @@ public class BrightnessTracker { private boolean mColorSamplingEnabled; private int mNoFramesToSample; private float mFrameRate; - private BrightnessConfiguration mBrightnessConfiguration; + private boolean mShouldCollectColorSample = false; // End of block of members that should only be accessed on the mBgHandler thread. private @UserIdInt int mCurrentUserId = UserHandle.USER_NULL; @@ -208,9 +207,9 @@ public class BrightnessTracker { /** * Update tracker with new brightness configuration. */ - public void setBrightnessConfiguration(BrightnessConfiguration brightnessConfiguration) { - mBgHandler.obtainMessage(MSG_BRIGHTNESS_CONFIG_CHANGED, - brightnessConfiguration).sendToTarget(); + public void setShouldCollectColorSample(boolean shouldCollectColorSample) { + mBgHandler.obtainMessage(MSG_SHOULD_COLLECT_COLOR_SAMPLE_CHANGED, + shouldCollectColorSample).sendToTarget(); } private void backgroundStart(float initialBrightness) { @@ -827,8 +826,7 @@ public class BrightnessTracker { if (!mInjector.isBrightnessModeAutomatic(mContentResolver) || !mInjector.isInteractive(mContext) || mColorSamplingEnabled - || mBrightnessConfiguration == null - || !mBrightnessConfiguration.shouldCollectColorSamples()) { + || !mShouldCollectColorSample) { return; } @@ -1009,14 +1007,11 @@ public class BrightnessTracker { stopSensorListener(); disableColorSampling(); break; - case MSG_BRIGHTNESS_CONFIG_CHANGED: - mBrightnessConfiguration = (BrightnessConfiguration) msg.obj; - boolean shouldCollectColorSamples = - mBrightnessConfiguration != null - && mBrightnessConfiguration.shouldCollectColorSamples(); - if (shouldCollectColorSamples && !mColorSamplingEnabled) { + case MSG_SHOULD_COLLECT_COLOR_SAMPLE_CHANGED: + mShouldCollectColorSample = (boolean) msg.obj; + if (mShouldCollectColorSample && !mColorSamplingEnabled) { enableColorSampling(); - } else if (!shouldCollectColorSamples && mColorSamplingEnabled) { + } else if (!mShouldCollectColorSample && mColorSamplingEnabled) { disableColorSampling(); } break; diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java index 9917bfc3aca65..48dc226db1cf3 100644 --- a/services/core/java/com/android/server/display/DisplayPowerController.java +++ b/services/core/java/com/android/server/display/DisplayPowerController.java @@ -1555,7 +1555,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call : AutomaticBrightnessController.AUTO_BRIGHTNESS_DISABLED); if (mBrightnessTracker != null) { - mBrightnessTracker.setBrightnessConfiguration(mBrightnessConfiguration); + mBrightnessTracker.setShouldCollectColorSample(mBrightnessConfiguration != null + && mBrightnessConfiguration.shouldCollectColorSamples()); } boolean updateScreenBrightnessSetting = false; diff --git a/services/core/java/com/android/server/display/DisplayPowerController2.java b/services/core/java/com/android/server/display/DisplayPowerController2.java index f49419cf789ea..ad7d5a8feea76 100644 --- a/services/core/java/com/android/server/display/DisplayPowerController2.java +++ b/services/core/java/com/android/server/display/DisplayPowerController2.java @@ -1267,7 +1267,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal : AutomaticBrightnessController.AUTO_BRIGHTNESS_DISABLED); if (mBrightnessTracker != null) { - mBrightnessTracker.setBrightnessConfiguration(mBrightnessConfiguration); + mBrightnessTracker.setShouldCollectColorSample(mBrightnessConfiguration != null + && mBrightnessConfiguration.shouldCollectColorSamples()); } boolean updateScreenBrightnessSetting = false; diff --git a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java index 6def7b1c8c357..8981160d1f250 100644 --- a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java +++ b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java @@ -176,21 +176,18 @@ public class BrightnessTrackerTest { assertFalse(mInjector.mColorSamplingEnabled); // Update brightness config to enabled color sampling. - mTracker.setBrightnessConfiguration(buildBrightnessConfiguration( - /* collectColorSamples= */ true)); + mTracker.setShouldCollectColorSample(/* collectColorSamples= */ true); mInjector.waitForHandler(); assertTrue(mInjector.mColorSamplingEnabled); // Update brightness config to disable color sampling. - mTracker.setBrightnessConfiguration(buildBrightnessConfiguration( - /* collectColorSamples= */ false)); + mTracker.setShouldCollectColorSample(/* collectColorSamples= */ false); mInjector.waitForHandler(); assertFalse(mInjector.mColorSamplingEnabled); // Pretend screen is off, update config to turn on color sampling. mInjector.sendScreenChange(/* screenOn= */ false); - mTracker.setBrightnessConfiguration(buildBrightnessConfiguration( - /* collectColorSamples= */ true)); + mTracker.setShouldCollectColorSample(/* collectColorSamples= */ true); mInjector.waitForHandler(); assertFalse(mInjector.mColorSamplingEnabled); @@ -883,7 +880,7 @@ public class BrightnessTrackerTest { private void startTracker(BrightnessTracker tracker, float initialBrightness, boolean collectColorSamples) { tracker.start(initialBrightness); - tracker.setBrightnessConfiguration(buildBrightnessConfiguration(collectColorSamples)); + tracker.setShouldCollectColorSample(collectColorSamples); mInjector.waitForHandler(); }