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

Commit a3079eee authored by Kriti Dang's avatar Kriti Dang Committed by Android (Google) Code Review
Browse files

Merge "Use HdrConversionMode FORCE with preferredHdrType INVALID for a casee...

Merge "Use HdrConversionMode FORCE with preferredHdrType INVALID for a casee when SDR FORCE conversion is chosen." into udc-dev
parents 26043b29 53fa453b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1409,9 +1409,10 @@ public final class DisplayManager {
     * @param hdrConversionMode The {@link HdrConversionMode} to set.
     * Note, {@code HdrConversionMode.preferredHdrOutputType} is only applicable when
     * {@code HdrConversionMode.conversionMode} is {@link HdrConversionMode#HDR_CONVERSION_FORCE}.
     * If {@code HdrConversionMode.preferredHdrOutputType} is not set in case when
     * {@code HdrConversionMode.conversionMode} is {@link HdrConversionMode#HDR_CONVERSION_FORCE},
     * it means that preferred output type is SDR.
     *
     * @throws IllegalArgumentException if hdrConversionMode.preferredHdrOutputType is not set
     * when hdrConversionMode.conversionMode is {@link HdrConversionMode#HDR_CONVERSION_FORCE}.
     * @throws IllegalArgumentException if hdrConversionMode.preferredHdrOutputType is set but
     * hdrConversionMode.conversionMode is not {@link HdrConversionMode#HDR_CONVERSION_FORCE}.
     *
+13 −5
Original line number Diff line number Diff line
@@ -2126,16 +2126,24 @@ public final class DisplayManagerService extends SystemService {
                autoHdrOutputTypes = getEnabledAutoHdrTypesLocked();
            }

            int conversionMode = hdrConversionMode.getConversionMode();
            int preferredHdrType = hdrConversionMode.getPreferredHdrOutputType();
            // If the HDR conversion is disabled by an app through WindowManager.LayoutParams, then
            // set HDR conversion mode to HDR_CONVERSION_PASSTHROUGH.
            if (mOverrideHdrConversionMode == null) {
                mSystemPreferredHdrOutputType =
                        mInjector.setHdrConversionMode(hdrConversionMode.getConversionMode(),
                        hdrConversionMode.getPreferredHdrOutputType(), autoHdrOutputTypes);
                // HDR_CONVERSION_FORCE with HDR_TYPE_INVALID is used to represent forcing SDR type.
                // But, internally SDR is selected by using passthrough mode.
                if (conversionMode == HdrConversionMode.HDR_CONVERSION_FORCE
                        && preferredHdrType == Display.HdrCapabilities.HDR_TYPE_INVALID) {
                    conversionMode = HdrConversionMode.HDR_CONVERSION_PASSTHROUGH;
                }
            } else {
                mInjector.setHdrConversionMode(mOverrideHdrConversionMode.getConversionMode(),
                        mOverrideHdrConversionMode.getPreferredHdrOutputType(), null);
                conversionMode = mOverrideHdrConversionMode.getConversionMode();
                preferredHdrType = mOverrideHdrConversionMode.getPreferredHdrOutputType();
                autoHdrOutputTypes = null;
            }
            mSystemPreferredHdrOutputType = mInjector.setHdrConversionMode(
                    conversionMode, preferredHdrType, autoHdrOutputTypes);
        }
    }