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

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

Merge "Default resolution settings [Backend]"

parents bdbf8694 ccc7d4bd
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1180,12 +1180,15 @@ package android.hardware.display {

  public final class DisplayManager {
    method public boolean areUserDisabledHdrTypesAllowed();
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void clearUserPreferredDisplayMode();
    method @NonNull public int[] getUserDisabledHdrTypes();
    method @Nullable public android.view.Display.Mode getUserPreferredDisplayMode();
    method public boolean isMinimalPostProcessingRequested(int);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAreUserDisabledHdrTypesAllowed(boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_REFRESH_RATE_SWITCHING_TYPE) public void setRefreshRateSwitchingType(int);
    method @RequiresPermission(android.Manifest.permission.OVERRIDE_DISPLAY_MODE_REQUESTS) public void setShouldAlwaysRespectAppRequestedMode(boolean);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setUserDisabledHdrTypes(@NonNull int[]);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setUserPreferredDisplayMode(@NonNull android.view.Display.Mode);
    method @RequiresPermission(android.Manifest.permission.OVERRIDE_DISPLAY_MODE_REQUESTS) public boolean shouldAlwaysRespectAppRequestedMode();
    field public static final int SWITCHING_TYPE_ACROSS_AND_WITHIN_GROUPS = 2; // 0x2
    field public static final int SWITCHING_TYPE_NONE = 0; // 0x0
@@ -2168,6 +2171,9 @@ package android.provider {
    field public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices";
    field public static final String SHOW_FIRST_CRASH_DIALOG = "show_first_crash_dialog";
    field public static final String USER_DISABLED_HDR_FORMATS = "user_disabled_hdr_formats";
    field public static final String USER_PREFERRED_REFRESH_RATE = "user_preferred_refresh_rate";
    field public static final String USER_PREFERRED_RESOLUTION_HEIGHT = "user_preferred_resolution_height";
    field public static final String USER_PREFERRED_RESOLUTION_WIDTH = "user_preferred_resolution_width";
    field public static final String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package";
  }

@@ -2735,6 +2741,7 @@ package android.view {
  }

  public final class Display {
    method @NonNull public android.view.Display.Mode getDefaultMode();
    method @NonNull public int[] getReportedHdrTypes();
    method @NonNull public android.graphics.ColorSpace[] getSupportedWideColorGamut();
    method public int getType();
@@ -2748,6 +2755,11 @@ package android.view {
    field public static final int TYPE_WIFI = 3; // 0x3
  }

  public static final class Display.Mode implements android.os.Parcelable {
    ctor public Display.Mode(int, int, float);
    method public boolean matches(int, int, float);
  }

  public class FocusFinder {
    method public static void sort(android.view.View[], int, int, android.view.ViewGroup, boolean);
  }
+38 −0
Original line number Diff line number Diff line
@@ -1112,6 +1112,44 @@ public final class DisplayManager {
        return mGlobal.getMinimumBrightnessCurve();
    }

    /**
     * Sets the default display mode, according to the refresh rate and the resolution chosen by the
     * user.
     *
     * @hide
     */
    @TestApi
    @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
    public void setUserPreferredDisplayMode(@NonNull Display.Mode mode) {
        // Create a new object containing default values for the unused fields like mode ID and
        // alternative refresh rates.
        Display.Mode preferredMode = new Display.Mode(mode.getPhysicalWidth(),
                mode.getPhysicalHeight(), mode.getRefreshRate());
        mGlobal.setUserPreferredDisplayMode(preferredMode);
    }

    /**
     * Removes the user preferred display mode.
     *
     * @hide
     */
    @TestApi
    @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
    public void clearUserPreferredDisplayMode() {
        mGlobal.setUserPreferredDisplayMode(null);
    }

    /**
     * Returns the user preferred display mode.
     *
     * @hide
     */
    @TestApi
    @Nullable
    public Display.Mode getUserPreferredDisplayMode() {
        return mGlobal.getUserPreferredDisplayMode();
    }

    /**
     * When enabled the app requested mode is always selected regardless of user settings and
     * policies for low brightness, low battery, etc.
+23 −0
Original line number Diff line number Diff line
@@ -876,6 +876,29 @@ public final class DisplayManagerGlobal {
        }
    }

    /**
     * Sets the default display mode, according to the refresh rate and the resolution chosen by the
     * user.
     */
    public void setUserPreferredDisplayMode(Display.Mode mode) {
        try {
            mDm.setUserPreferredDisplayMode(mode);
        } catch (RemoteException ex) {
            throw ex.rethrowFromSystemServer();
        }
    }

    /**
     * Returns the user preferred display mode.
     */
    public Display.Mode getUserPreferredDisplayMode() {
        try {
            return mDm.getUserPreferredDisplayMode();
        } catch (RemoteException ex) {
            throw ex.rethrowFromSystemServer();
        }
    }

    /**
     * When enabled the app requested display resolution and refresh rate is always selected
     * in DisplayModeDirector regardless of user settings and policies for low brightness, low
+6 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.hardware.display.VirtualDisplayConfig;
import android.hardware.display.WifiDisplay;
import android.hardware.display.WifiDisplayStatus;
import android.media.projection.IMediaProjection;
import android.view.Display.Mode;
import android.view.DisplayInfo;
import android.view.Surface;

@@ -162,6 +163,11 @@ interface IDisplayManager {
    // based on hardware capability.
    int getPreferredWideGamutColorSpaceId();

    // Sets the user preferred display mode.
    // Requires WRITE_SECURE_SETTINGS permission.
    void setUserPreferredDisplayMode(in Mode mode);
    Mode getUserPreferredDisplayMode();

    // When enabled the app requested display resolution and refresh rate is always selected
    // in DisplayModeDirector regardless of user settings and policies for low brightness, low
    // battery etc.
+32 −0
Original line number Diff line number Diff line
@@ -14603,6 +14603,38 @@ public final class Settings {
        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
        public static final int HEADS_UP_ON = 1;
        /**
         * The refresh rate chosen by the user.
         *
         * @hide
         */
        @TestApi
        @Readable
        @SuppressLint("NoSettingsProvider")
        public static final String USER_PREFERRED_REFRESH_RATE = "user_preferred_refresh_rate";
        /**
         * The resolution height chosen by the user.
         *
         * @hide
         */
        @TestApi
        @Readable
        @SuppressLint("NoSettingsProvider")
        public static final String USER_PREFERRED_RESOLUTION_HEIGHT =
                "user_preferred_resolution_height";
        /**
         * The resolution width chosen by the user.
         *
         * @hide
         */
        @TestApi
        @Readable
        @SuppressLint("NoSettingsProvider")
        public static final String USER_PREFERRED_RESOLUTION_WIDTH =
                "user_preferred_resolution_width";
        /**
         * The name of the device
         */
Loading