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

Commit 7a595d23 authored by John Reck's avatar John Reck
Browse files

Flag the HDR animation change

This is intended for V, but should be
flagged regardless and flagging is now in place

Bug: 292124102
Test: atest com.android.server.display.DisplayPowerControllerTest
Change-Id: I990b00f7eed13b79ac23b1a4b8e631822d670c92
parent cbf643b4
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1978,8 +1978,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                    || sdrAnimateValue != currentSdrBrightness)) {
                boolean skipAnimation = initialRampSkip || hasBrightnessBuckets
                        || !isDisplayContentVisible || brightnessIsTemporary;
                if (!skipAnimation && BrightnessSynchronizer.floatEquals(
                        sdrAnimateValue, currentSdrBrightness)) {
                final boolean isHdrOnlyChange = BrightnessSynchronizer.floatEquals(
                        sdrAnimateValue, currentSdrBrightness);
                if (mFlags.isFastHdrTransitionsEnabled() && !skipAnimation && isHdrOnlyChange) {
                    // SDR brightness is unchanged, so animate quickly as this is only impacting
                    // a likely minority amount of display content
                    // ie, the highlights of an HDR video or UltraHDR image
+3 −2
Original line number Diff line number Diff line
@@ -1602,8 +1602,9 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
                    || sdrAnimateValue != currentSdrBrightness)) {
                boolean skipAnimation = initialRampSkip || hasBrightnessBuckets
                        || !isDisplayContentVisible || brightnessIsTemporary;
                if (!skipAnimation && BrightnessSynchronizer.floatEquals(
                        sdrAnimateValue, currentSdrBrightness)) {
                final boolean isHdrOnlyChange = BrightnessSynchronizer.floatEquals(
                        sdrAnimateValue, currentSdrBrightness);
                if (mFlags.isFastHdrTransitionsEnabled() && !skipAnimation && isHdrOnlyChange) {
                    // SDR brightness is unchanged, so animate quickly as this is only impacting
                    // a likely minority amount of display content
                    // ie, the highlights of an HDR video or UltraHDR image
+9 −0
Original line number Diff line number Diff line
@@ -101,6 +101,10 @@ public class DisplayManagerFlags {
            Flags.FLAG_AUTO_BRIGHTNESS_MODES,
            Flags::autoBrightnessModes);

    private final FlagState mFastHdrTransitions = new FlagState(
            Flags.FLAG_FAST_HDR_TRANSITIONS,
            Flags::fastHdrTransitions);

    /** Returns whether connected display management is enabled or not. */
    public boolean isConnectedDisplayManagementEnabled() {
        return mConnectedDisplayManagementFlagState.isEnabled();
@@ -205,6 +209,10 @@ public class DisplayManagerFlags {
        return mAutoBrightnessModesFlagState.isEnabled();
    }

    public boolean isFastHdrTransitionsEnabled() {
        return mFastHdrTransitions.isEnabled();
    }

    /**
     * dumps all flagstates
     * @param pw printWriter
@@ -226,6 +234,7 @@ public class DisplayManagerFlags {
        pw.println(" " + mVsyncProximityVote);
        pw.println(" " + mBrightnessWearBedtimeModeClamperFlagState);
        pw.println(" " + mAutoBrightnessModesFlagState);
        pw.println(" " + mFastHdrTransitions);
    }

    private static class FlagState {
+9 −0
Original line number Diff line number Diff line
@@ -144,3 +144,12 @@ flag {
    bug: "293613040"
    is_fixed_read_only: true
}

flag {
    name: "fast_hdr_transitions"
    namespace: "display_manager"
    description: "Feature flag for fast transitions into/out of HDR"
    bug: "292124102"
    is_fixed_read_only: true
}
+2 −0
Original line number Diff line number Diff line
@@ -727,6 +727,7 @@ public final class DisplayPowerController2Test {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_FAST_HDR_TRANSITIONS)
    public void testDisplayBrightnessHdr_SkipAnimationOnHdrAppearance() {
        Settings.System.putInt(mContext.getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
@@ -762,6 +763,7 @@ public final class DisplayPowerController2Test {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_FAST_HDR_TRANSITIONS)
    public void testDisplayBrightnessHdr_SkipAnimationOnHdrRemoval() {
        Settings.System.putInt(mContext.getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
Loading