Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ca08f6b authored by Rupesh Bansal's avatar Rupesh Bansal
Browse files

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
parent ef75be39
Loading
Loading
Loading
Loading
+10 −15
Original line number Diff line number Diff line
@@ -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;
+2 −1
Original line number Diff line number Diff line
@@ -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;
+2 −1
Original line number Diff line number Diff line
@@ -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;
+4 −7
Original line number Diff line number Diff line
@@ -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();
    }