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

Commit 5226ffc8 authored by Oleg Blinnikov's avatar Oleg Blinnikov
Browse files

Pass userPreferredMode separately from defaultMode

DisplayModeDirector later would need to know what is
the userPreferredMode. Having userPreferredMode
stored on defaultMode do not allow DisplayModeDirector
to distinguish between these two.

This CL passes userPreferredMode separately from
defaultMode.

Change-Id: I312a7c605a012dab14bb20635e6210cd3cdce8b3
Bug: 297018612
Test: atest DisplayInfoTest
parent d3d8ca36
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.view;

import static android.view.Display.Mode.INVALID_MODE_ID;
import static android.view.DisplayInfoProto.APP_HEIGHT;
import static android.view.DisplayInfoProto.APP_WIDTH;
import static android.view.DisplayInfoProto.CUTOUT;
@@ -199,6 +200,11 @@ public final class DisplayInfo implements Parcelable {
     */
    public int defaultModeId;

    /**
     * The user preferred display mode.
     */
    public int userPreferredModeId = INVALID_MODE_ID;

    /**
     * The supported modes of this display.
     */
@@ -420,6 +426,7 @@ public final class DisplayInfo implements Parcelable {
                && modeId == other.modeId
                && renderFrameRate == other.renderFrameRate
                && defaultModeId == other.defaultModeId
                && userPreferredModeId == other.userPreferredModeId
                && Arrays.equals(supportedModes, other.supportedModes)
                && colorMode == other.colorMode
                && Arrays.equals(supportedColorModes, other.supportedColorModes)
@@ -478,6 +485,7 @@ public final class DisplayInfo implements Parcelable {
        modeId = other.modeId;
        renderFrameRate = other.renderFrameRate;
        defaultModeId = other.defaultModeId;
        userPreferredModeId = other.userPreferredModeId;
        supportedModes = Arrays.copyOf(other.supportedModes, other.supportedModes.length);
        colorMode = other.colorMode;
        supportedColorModes = Arrays.copyOf(
@@ -530,6 +538,7 @@ public final class DisplayInfo implements Parcelable {
        modeId = source.readInt();
        renderFrameRate = source.readFloat();
        defaultModeId = source.readInt();
        userPreferredModeId = source.readInt();
        int nModes = source.readInt();
        supportedModes = new Display.Mode[nModes];
        for (int i = 0; i < nModes; i++) {
@@ -596,6 +605,7 @@ public final class DisplayInfo implements Parcelable {
        dest.writeInt(modeId);
        dest.writeFloat(renderFrameRate);
        dest.writeInt(defaultModeId);
        dest.writeInt(userPreferredModeId);
        dest.writeInt(supportedModes.length);
        for (int i = 0; i < supportedModes.length; i++) {
            supportedModes[i].writeToParcel(dest, flags);
@@ -832,9 +842,12 @@ public final class DisplayInfo implements Parcelable {
        sb.append(presentationDeadlineNanos);
        sb.append(", mode ");
        sb.append(modeId);
        sb.append(", renderFrameRate ");
        sb.append(renderFrameRate);
        sb.append(", defaultMode ");
        sb.append(defaultModeId);
        sb.append(", userPreferredModeId ");
        sb.append(userPreferredModeId);
        sb.append(", modes ");
        sb.append(Arrays.toString(supportedModes));
        sb.append(", hdrCapabilities ");
+10 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.display;

import static android.view.Display.Mode.INVALID_MODE_ID;

import android.hardware.display.DeviceProductInfo;
import android.hardware.display.DisplayViewport;
import android.util.DisplayMetrics;
@@ -274,6 +276,11 @@ final class DisplayDeviceInfo {
     */
    public int defaultModeId;

    /**
     * The mode of the display which is preferred by user.
     */
    public int userPreferredModeId = INVALID_MODE_ID;

    /**
     * The supported modes of the display.
     */
@@ -472,6 +479,7 @@ final class DisplayDeviceInfo {
                || modeId != other.modeId
                || renderFrameRate != other.renderFrameRate
                || defaultModeId != other.defaultModeId
                || userPreferredModeId != other.userPreferredModeId
                || !Arrays.equals(supportedModes, other.supportedModes)
                || !Arrays.equals(supportedColorModes, other.supportedColorModes)
                || !Objects.equals(hdrCapabilities, other.hdrCapabilities)
@@ -517,6 +525,7 @@ final class DisplayDeviceInfo {
        modeId = other.modeId;
        renderFrameRate = other.renderFrameRate;
        defaultModeId = other.defaultModeId;
        userPreferredModeId = other.userPreferredModeId;
        supportedModes = other.supportedModes;
        colorMode = other.colorMode;
        supportedColorModes = other.supportedColorModes;
@@ -559,6 +568,7 @@ final class DisplayDeviceInfo {
        sb.append(", modeId ").append(modeId);
        sb.append(", renderFrameRate ").append(renderFrameRate);
        sb.append(", defaultModeId ").append(defaultModeId);
        sb.append(", userPreferredModeId ").append(userPreferredModeId);
        sb.append(", supportedModes ").append(Arrays.toString(supportedModes));
        sb.append(", colorMode ").append(colorMode);
        sb.append(", supportedColorModes ").append(Arrays.toString(supportedColorModes));
+1 −0
Original line number Diff line number Diff line
@@ -640,6 +640,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
                mInfo.modeId = mActiveModeId;
                mInfo.renderFrameRate = mActiveRenderFrameRate;
                mInfo.defaultModeId = getPreferredModeId();
                mInfo.userPreferredModeId = mUserPreferredModeId;
                mInfo.supportedModes = getDisplayModes(mSupportedModes);
                mInfo.colorMode = mActiveColorMode;
                mInfo.allmSupported = mAllmSupported;
+1 −0
Original line number Diff line number Diff line
@@ -470,6 +470,7 @@ final class LogicalDisplay {
            mBaseDisplayInfo.modeId = deviceInfo.modeId;
            mBaseDisplayInfo.renderFrameRate = deviceInfo.renderFrameRate;
            mBaseDisplayInfo.defaultModeId = deviceInfo.defaultModeId;
            mBaseDisplayInfo.userPreferredModeId = deviceInfo.userPreferredModeId;
            mBaseDisplayInfo.supportedModes = Arrays.copyOf(
                    deviceInfo.supportedModes, deviceInfo.supportedModes.length);
            mBaseDisplayInfo.colorMode = deviceInfo.colorMode;