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

Commit 85a1ebf6 authored by Chavi Weingarten's avatar Chavi Weingarten
Browse files

Make overrideHdrTypes per display

The API overrideHdrTypes should be per display. Add an API into DMS so
DMS can set the override with the correct displayToken. Remove usage of
getInternalDisplayToken in DisplayTests

Test: DisplayTest
Bug: 242714168
Change-Id: Ib338624a71a897d8d718080850f672a219f9627e
parent 51847be2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1223,6 +1223,7 @@ package android.hardware.display {
    method @Nullable public android.view.Display.Mode getGlobalUserPreferredDisplayMode();
    method @NonNull public int[] getUserDisabledHdrTypes();
    method public boolean isMinimalPostProcessingRequested(int);
    method @RequiresPermission(android.Manifest.permission.ACCESS_SURFACE_FLINGER) public void overrideHdrTypes(int, @NonNull int[]);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAreUserDisabledHdrTypesAllowed(boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_USER_PREFERRED_DISPLAY_MODE) public void setGlobalUserPreferredDisplayMode(@NonNull android.view.Display.Mode);
    method @RequiresPermission(android.Manifest.permission.MODIFY_REFRESH_RATE_SWITCHING_TYPE) public void setRefreshRateSwitchingType(int);
@@ -2885,7 +2886,6 @@ package android.view {
    ctor public SurfaceControl(@NonNull android.view.SurfaceControl, @NonNull String);
    method @NonNull public static android.os.IBinder getInternalDisplayToken();
    method public boolean isSameSurface(@NonNull android.view.SurfaceControl);
    method public static void overrideHdrTypes(@NonNull android.os.IBinder, @NonNull int[]);
  }

  public class SurfaceControlViewHost {
+10 −0
Original line number Diff line number Diff line
@@ -855,6 +855,16 @@ public final class DisplayManager {
        return mGlobal.getUserDisabledHdrTypes();
    }

    /**
     * Overrides HDR modes for a display device.
     *
     * @hide
     */
    @RequiresPermission(Manifest.permission.ACCESS_SURFACE_FLINGER)
    @TestApi
    public void overrideHdrTypes(int displayId, @NonNull int[] modes) {
        mGlobal.overrideHdrTypes(displayId, modes);
    }

    /**
     * Creates a virtual display.
+16 −0
Original line number Diff line number Diff line
@@ -20,9 +20,11 @@ package android.hardware.display;
import static android.hardware.display.DisplayManager.EventsMask;
import static android.view.Display.HdrCapabilities.HdrType;

import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.app.PropertyInvalidatedCache;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
@@ -577,6 +579,20 @@ public final class DisplayManagerGlobal {
        }
    }

    /**
     * Overrides HDR modes for a display device.
     *
     */
    @RequiresPermission(Manifest.permission.ACCESS_SURFACE_FLINGER)
    public void overrideHdrTypes(int displayId, int[] modes) {
        try {
            mDm.overrideHdrTypes(displayId, modes);
        } catch (RemoteException ex) {
            throw ex.rethrowFromSystemServer();
        }
    }


    public void requestColorMode(int displayId, int colorMode) {
        try {
            mDm.requestColorMode(displayId, colorMode);
+3 −0
Original line number Diff line number Diff line
@@ -83,6 +83,9 @@ interface IDisplayManager {
    // No permissions required.
    int[] getUserDisabledHdrTypes();

    // Requires ACCESS_SURFACE_FLINGER permission.
    void overrideHdrTypes(int displayId, in int[] modes);

    // Requires CONFIGURE_DISPLAY_COLOR_MODE
    void requestColorMode(int displayId, int colorMode);

+0 −14
Original line number Diff line number Diff line
@@ -225,8 +225,6 @@ public final class SurfaceControl implements Parcelable {
    private static native void nativeSetDimmingEnabled(long transactionObj, long nativeObject,
            boolean dimmingEnabled);

    private static native void nativeOverrideHdrTypes(IBinder displayToken, int[] modes);

    private static native void nativeSetInputWindowInfo(long transactionObj, long nativeObject,
            InputWindowHandle handle);

@@ -2037,18 +2035,6 @@ public final class SurfaceControl implements Parcelable {
                IVirtualDisplayCallback.Stub.asInterface(displayToken));
    }

    /**
     * Overrides HDR modes for a display device.
     *
     * If the caller does not have ACCESS_SURFACE_FLINGER permission, this will throw a Security
     * Exception.
     * @hide
     */
    @TestApi
    public static void overrideHdrTypes(@NonNull IBinder displayToken, @NonNull int[] modes) {
        nativeOverrideHdrTypes(displayToken, modes);
    }

    /**
     * @hide
     */
Loading