Loading core/res/res/values/config.xml +6 −0 Original line number Diff line number Diff line Loading @@ -1026,6 +1026,12 @@ <!-- Duration, in milliseconds, of the display white balance animated transitions. --> <integer name="config_displayWhiteBalanceTransitionTime">3000</integer> <!-- Duration, in milliseconds, of the display white balance animated transitions when increasing cct. --> <integer name="config_displayWhiteBalanceTransitionTimeIncrease">1000</integer> <!-- Duration, in milliseconds, of the display white balance animated transitions when decreasing cct. --> <integer name="config_displayWhiteBalanceTransitionTimeDecrease">40000</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.--> Loading core/res/res/values/symbols.xml +2 −0 Original line number Diff line number Diff line Loading @@ -3486,6 +3486,8 @@ <java-symbol type="array" name="config_displayWhiteBalanceDisplaySteps" /> <java-symbol type="bool" name="config_displayWhiteBalanceLightModeAllowed" /> <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTime" /> <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTimeIncrease" /> <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTimeDecrease" /> <!-- Device states where the sensor based rotation values should be reversed around the Z axis for the default display. Loading services/core/java/com/android/server/display/color/ColorDisplayService.java +7 −3 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import com.android.internal.util.DumpUtils; import com.android.server.DisplayThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.twilight.TwilightListener; import com.android.server.twilight.TwilightManager; import com.android.server.twilight.TwilightState; Loading Loading @@ -148,10 +149,12 @@ public final class ColorDisplayService extends SystemService { 1f, 1f, 1f, 1f }; private final DisplayManagerFlags mDisplayManagerFlags = new DisplayManagerFlags(); @VisibleForTesting final DisplayWhiteBalanceTintController mDisplayWhiteBalanceTintController = new DisplayWhiteBalanceTintController( LocalServices.getService(DisplayManagerInternal.class)); LocalServices.getService(DisplayManagerInternal.class), mDisplayManagerFlags); private final NightDisplayTintController mNightDisplayTintController = new NightDisplayTintController(); private final TintController mGlobalSaturationTintController = Loading Loading @@ -716,15 +719,16 @@ public final class ColorDisplayService extends SystemService { tintController.computeMatrixForCct(to)); tintController.setAppliedCct(to); } else { final long duration = tintController.getTransitionDurationMilliseconds(to > from); Slog.d(TAG, tintController.getClass().getSimpleName() + " animation started: toCct=" + to + " fromCct=" + from); + to + " fromCct=" + from + " with duration=" + duration); ValueAnimator valueAnimator = ValueAnimator.ofInt(from, to); tintController.setAnimator(valueAnimator); final CctEvaluator evaluator = tintController.getEvaluator(); if (evaluator != null) { valueAnimator.setEvaluator(evaluator); } valueAnimator.setDuration(tintController.getTransitionDurationMilliseconds()); valueAnimator.setDuration(duration); valueAnimator.setInterpolator(AnimationUtils.loadInterpolator( getContext(), android.R.interpolator.linear)); valueAnimator.addUpdateListener((ValueAnimator animator) -> { Loading services/core/java/com/android/server/display/color/DisplayWhiteBalanceTintController.java +26 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.SurfaceControl.DisplayPrimaries; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.server.display.feature.DisplayManagerFlags; import java.io.PrintWriter; Loading Loading @@ -65,6 +66,8 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro boolean mSetUp = false; private final float[] mMatrixDisplayWhiteBalance = new float[16]; private long mTransitionDuration; private long mTransitionDurationIncrease; private long mTransitionDurationDecrease; private Boolean mIsAvailable; // This feature becomes disallowed if the device is in an unsupported strong/light state. private boolean mIsAllowed = true; Loading @@ -74,8 +77,12 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro private final DisplayManagerInternal mDisplayManagerInternal; DisplayWhiteBalanceTintController(DisplayManagerInternal dm) { private final DisplayManagerFlags mDisplayManagerFlags; DisplayWhiteBalanceTintController(DisplayManagerInternal dm, DisplayManagerFlags displayManagerFlags) { mDisplayManagerInternal = dm; mDisplayManagerFlags = displayManagerFlags; } @Override Loading Loading @@ -139,6 +146,16 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro mTransitionDuration = res.getInteger( R.integer.config_displayWhiteBalanceTransitionTime); if (!mDisplayManagerFlags.isAdaptiveTone2Enabled()) { mTransitionDurationDecrease = mTransitionDuration; mTransitionDurationIncrease = mTransitionDuration; } else { mTransitionDurationIncrease = res.getInteger( R.integer.config_displayWhiteBalanceTransitionTimeIncrease); mTransitionDurationDecrease = res.getInteger( R.integer.config_displayWhiteBalanceTransitionTimeDecrease); } int[] cctRangeMinimums = res.getIntArray( R.array.config_displayWhiteBalanceDisplayRangeMinimums); int[] steps = res.getIntArray(R.array.config_displayWhiteBalanceDisplaySteps); Loading Loading @@ -322,6 +339,11 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro return mTransitionDuration; } @Override public long getTransitionDurationMilliseconds(boolean isIncreasing) { return isIncreasing ? mTransitionDurationIncrease : mTransitionDurationDecrease; } @Override public void dump(PrintWriter pw) { synchronized (mLock) { Loading @@ -348,6 +370,9 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro pw.println(" mMatrixDisplayWhiteBalance = " + matrixToString(mMatrixDisplayWhiteBalance, 4)); pw.println(" mIsAllowed = " + mIsAllowed); pw.println(" mTransitionDuration = " + mTransitionDuration); pw.println(" mTransitionDurationIncrease = " + mTransitionDurationIncrease); pw.println(" mTransitionDurationDecrease = " + mTransitionDurationDecrease); } } Loading services/core/java/com/android/server/display/color/TintController.java +4 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,10 @@ abstract class TintController { return TRANSITION_DURATION; } public long getTransitionDurationMilliseconds(boolean direction) { return TRANSITION_DURATION; } /** * Dump debug information. */ Loading Loading
core/res/res/values/config.xml +6 −0 Original line number Diff line number Diff line Loading @@ -1026,6 +1026,12 @@ <!-- Duration, in milliseconds, of the display white balance animated transitions. --> <integer name="config_displayWhiteBalanceTransitionTime">3000</integer> <!-- Duration, in milliseconds, of the display white balance animated transitions when increasing cct. --> <integer name="config_displayWhiteBalanceTransitionTimeIncrease">1000</integer> <!-- Duration, in milliseconds, of the display white balance animated transitions when decreasing cct. --> <integer name="config_displayWhiteBalanceTransitionTimeDecrease">40000</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.--> Loading
core/res/res/values/symbols.xml +2 −0 Original line number Diff line number Diff line Loading @@ -3486,6 +3486,8 @@ <java-symbol type="array" name="config_displayWhiteBalanceDisplaySteps" /> <java-symbol type="bool" name="config_displayWhiteBalanceLightModeAllowed" /> <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTime" /> <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTimeIncrease" /> <java-symbol type="integer" name="config_displayWhiteBalanceTransitionTimeDecrease" /> <!-- Device states where the sensor based rotation values should be reversed around the Z axis for the default display. Loading
services/core/java/com/android/server/display/color/ColorDisplayService.java +7 −3 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import com.android.internal.util.DumpUtils; import com.android.server.DisplayThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.twilight.TwilightListener; import com.android.server.twilight.TwilightManager; import com.android.server.twilight.TwilightState; Loading Loading @@ -148,10 +149,12 @@ public final class ColorDisplayService extends SystemService { 1f, 1f, 1f, 1f }; private final DisplayManagerFlags mDisplayManagerFlags = new DisplayManagerFlags(); @VisibleForTesting final DisplayWhiteBalanceTintController mDisplayWhiteBalanceTintController = new DisplayWhiteBalanceTintController( LocalServices.getService(DisplayManagerInternal.class)); LocalServices.getService(DisplayManagerInternal.class), mDisplayManagerFlags); private final NightDisplayTintController mNightDisplayTintController = new NightDisplayTintController(); private final TintController mGlobalSaturationTintController = Loading Loading @@ -716,15 +719,16 @@ public final class ColorDisplayService extends SystemService { tintController.computeMatrixForCct(to)); tintController.setAppliedCct(to); } else { final long duration = tintController.getTransitionDurationMilliseconds(to > from); Slog.d(TAG, tintController.getClass().getSimpleName() + " animation started: toCct=" + to + " fromCct=" + from); + to + " fromCct=" + from + " with duration=" + duration); ValueAnimator valueAnimator = ValueAnimator.ofInt(from, to); tintController.setAnimator(valueAnimator); final CctEvaluator evaluator = tintController.getEvaluator(); if (evaluator != null) { valueAnimator.setEvaluator(evaluator); } valueAnimator.setDuration(tintController.getTransitionDurationMilliseconds()); valueAnimator.setDuration(duration); valueAnimator.setInterpolator(AnimationUtils.loadInterpolator( getContext(), android.R.interpolator.linear)); valueAnimator.addUpdateListener((ValueAnimator animator) -> { Loading
services/core/java/com/android/server/display/color/DisplayWhiteBalanceTintController.java +26 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.SurfaceControl.DisplayPrimaries; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.server.display.feature.DisplayManagerFlags; import java.io.PrintWriter; Loading Loading @@ -65,6 +66,8 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro boolean mSetUp = false; private final float[] mMatrixDisplayWhiteBalance = new float[16]; private long mTransitionDuration; private long mTransitionDurationIncrease; private long mTransitionDurationDecrease; private Boolean mIsAvailable; // This feature becomes disallowed if the device is in an unsupported strong/light state. private boolean mIsAllowed = true; Loading @@ -74,8 +77,12 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro private final DisplayManagerInternal mDisplayManagerInternal; DisplayWhiteBalanceTintController(DisplayManagerInternal dm) { private final DisplayManagerFlags mDisplayManagerFlags; DisplayWhiteBalanceTintController(DisplayManagerInternal dm, DisplayManagerFlags displayManagerFlags) { mDisplayManagerInternal = dm; mDisplayManagerFlags = displayManagerFlags; } @Override Loading Loading @@ -139,6 +146,16 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro mTransitionDuration = res.getInteger( R.integer.config_displayWhiteBalanceTransitionTime); if (!mDisplayManagerFlags.isAdaptiveTone2Enabled()) { mTransitionDurationDecrease = mTransitionDuration; mTransitionDurationIncrease = mTransitionDuration; } else { mTransitionDurationIncrease = res.getInteger( R.integer.config_displayWhiteBalanceTransitionTimeIncrease); mTransitionDurationDecrease = res.getInteger( R.integer.config_displayWhiteBalanceTransitionTimeDecrease); } int[] cctRangeMinimums = res.getIntArray( R.array.config_displayWhiteBalanceDisplayRangeMinimums); int[] steps = res.getIntArray(R.array.config_displayWhiteBalanceDisplaySteps); Loading Loading @@ -322,6 +339,11 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro return mTransitionDuration; } @Override public long getTransitionDurationMilliseconds(boolean isIncreasing) { return isIncreasing ? mTransitionDurationIncrease : mTransitionDurationDecrease; } @Override public void dump(PrintWriter pw) { synchronized (mLock) { Loading @@ -348,6 +370,9 @@ final class DisplayWhiteBalanceTintController extends ColorTemperatureTintContro pw.println(" mMatrixDisplayWhiteBalance = " + matrixToString(mMatrixDisplayWhiteBalance, 4)); pw.println(" mIsAllowed = " + mIsAllowed); pw.println(" mTransitionDuration = " + mTransitionDuration); pw.println(" mTransitionDurationIncrease = " + mTransitionDurationIncrease); pw.println(" mTransitionDurationDecrease = " + mTransitionDurationDecrease); } } Loading
services/core/java/com/android/server/display/color/TintController.java +4 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,10 @@ abstract class TintController { return TRANSITION_DURATION; } public long getTransitionDurationMilliseconds(boolean direction) { return TRANSITION_DURATION; } /** * Dump debug information. */ Loading