diff options
| author | 2023-01-20 08:21:48 -0800 | |
|---|---|---|
| committer | 2023-01-27 18:09:01 +0000 | |
| commit | d4861c220ef5682df0365b15cf6fb092f4a62ff2 (patch) | |
| tree | 421633218a7499394241366650a3b766fe22d707 | |
| parent | a1531f2c2855242ce5f1c643ee497c409a3de4d0 (diff) | |
Configure DWB transition time per-device
Default is still 3000 millis
Bug: 265363036
Test: builds
Change-Id: I16534383c539b71e1dd02c4ecdfa1fa40d2bfed0
5 files changed, 24 insertions, 8 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 73518dc23379..87ece556a0ee 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -984,6 +984,9 @@ <!-- Boolean indicating whether light mode is allowed when DWB is turned on. --> <bool name="config_displayWhiteBalanceLightModeAllowed">true</bool> + <!-- Duration, in milliseconds, of the display white balance animated transitions. --> + <integer name="config_displayWhiteBalanceTransitionTime">3000</integer> + <!-- Device states where the sensor based rotation values should be reversed around the Z axis for the default display. TODO(b/265312193): Remove this workaround when this bug is fixed.--> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index b7621daecd39..a74c787fdab1 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3435,6 +3435,7 @@ <java-symbol type="array" name="config_displayWhiteBalanceDisplayPrimaries" /> <java-symbol type="array" name="config_displayWhiteBalanceDisplayNominalWhite" /> <java-symbol type="bool" name="config_displayWhiteBalanceLightModeAllowed" /> + <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTime" /> <!-- Device states where the sensor based rotation values should be reversed around the Z axis for the default display. diff --git a/services/core/java/com/android/server/display/color/ColorDisplayService.java b/services/core/java/com/android/server/display/color/ColorDisplayService.java index 017b96cc5f67..22767157d1d9 100644 --- a/services/core/java/com/android/server/display/color/ColorDisplayService.java +++ b/services/core/java/com/android/server/display/color/ColorDisplayService.java @@ -107,11 +107,6 @@ public final class ColorDisplayService extends SystemService { Matrix.setIdentityM(MATRIX_IDENTITY, 0); } - /** - * The transition time, in milliseconds, for Night Display to turn on/off. - */ - private static final long TRANSITION_DURATION = 3000L; - private static final int MSG_USER_CHANGED = 0; private static final int MSG_SET_UP = 1; private static final int MSG_APPLY_NIGHT_DISPLAY_IMMEDIATE = 2; @@ -661,7 +656,7 @@ public final class ColorDisplayService extends SystemService { TintValueAnimator valueAnimator = TintValueAnimator.ofMatrix(COLOR_MATRIX_EVALUATOR, from == null ? MATRIX_IDENTITY : from, to); tintController.setAnimator(valueAnimator); - valueAnimator.setDuration(TRANSITION_DURATION); + valueAnimator.setDuration(tintController.getTransitionDurationMilliseconds()); valueAnimator.setInterpolator(AnimationUtils.loadInterpolator( getContext(), android.R.interpolator.fast_out_slow_in)); valueAnimator.addUpdateListener((ValueAnimator animator) -> { diff --git a/services/core/java/com/android/server/display/color/DisplayWhiteBalanceTintController.java b/services/core/java/com/android/server/display/color/DisplayWhiteBalanceTintController.java index 93a78c1507ad..f27ccc723596 100644 --- a/services/core/java/com/android/server/display/color/DisplayWhiteBalanceTintController.java +++ b/services/core/java/com/android/server/display/color/DisplayWhiteBalanceTintController.java @@ -59,7 +59,8 @@ final class DisplayWhiteBalanceTintController extends TintController { private float[] mCurrentColorTemperatureXYZ; @VisibleForTesting boolean mSetUp = false; - private float[] mMatrixDisplayWhiteBalance = new float[16]; + private final float[] mMatrixDisplayWhiteBalance = new float[16]; + private long mTransitionDuration; private Boolean mIsAvailable; // This feature becomes disallowed if the device is in an unsupported strong/light state. private boolean mIsAllowed = true; @@ -119,6 +120,9 @@ final class DisplayWhiteBalanceTintController extends TintController { final int colorTemperature = res.getInteger( R.integer.config_displayWhiteBalanceColorTemperatureDefault); + mTransitionDuration = res.getInteger( + R.integer.config_displayWhiteBalanceTransitionTime); + synchronized (mLock) { mDisplayColorSpaceRGB = displayColorSpaceRGB; mDisplayNominalWhiteXYZ = displayNominalWhiteXYZ; @@ -232,6 +236,11 @@ final class DisplayWhiteBalanceTintController extends TintController { } @Override + public long getTransitionDurationMilliseconds() { + return mTransitionDuration; + } + + @Override public void dump(PrintWriter pw) { synchronized (mLock) { pw.println(" mSetUp = " + mSetUp); diff --git a/services/core/java/com/android/server/display/color/TintController.java b/services/core/java/com/android/server/display/color/TintController.java index 422dd328d2b6..c53ac06c66e1 100644 --- a/services/core/java/com/android/server/display/color/TintController.java +++ b/services/core/java/com/android/server/display/color/TintController.java @@ -16,7 +16,6 @@ package com.android.server.display.color; -import android.animation.ValueAnimator; import android.content.Context; import android.util.Slog; @@ -24,6 +23,11 @@ import java.io.PrintWriter; abstract class TintController { + /** + * The default transition time, in milliseconds, for color transforms to turn on/off. + */ + private static final long TRANSITION_DURATION = 3000L; + private ColorDisplayService.TintValueAnimator mAnimator; private Boolean mIsActivated; @@ -66,6 +70,10 @@ abstract class TintController { return mIsActivated == null; } + public long getTransitionDurationMilliseconds() { + return TRANSITION_DURATION; + } + /** * Dump debug information. */ |