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

Commit 5dd564dc authored by Naomi Musgrave's avatar Naomi Musgrave Committed by Android (Google) Code Review
Browse files

Merge "Temporary flag for Launcher to debug their usage of sandboxed display APIs" into sc-v2-dev

parents 7955c619 253696fe
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1463,10 +1463,10 @@ public final class Display {
            return false;
            return false;
        }
        }
        final Configuration config = mResources.getConfiguration();
        final Configuration config = mResources.getConfiguration();
        // TODO(b/179308296) Temporarily exclude Launcher from being given max bounds, by checking
        // TODO(b/179308296) Temporarily - never report max bounds to only Launcher if the feature
        // if the caller is the recents component.
        // is disabled.
        return config != null && !config.windowConfiguration.getMaxBounds().isEmpty()
        return config != null && !config.windowConfiguration.getMaxBounds().isEmpty()
                && !isRecentsComponent();
                && (mDisplayInfo.shouldConstrainMetricsForLauncher || !isRecentsComponent());
    }
    }


    /**
    /**
+14 −1
Original line number Original line Diff line number Diff line
@@ -305,6 +305,13 @@ public final class DisplayInfo implements Parcelable {
     */
     */
    public float brightnessDefault;
    public float brightnessDefault;


    /**
     * @hide
     * True if Display#getRealSize and getRealMetrics should be constrained for Launcher, false
     * otherwise.
     */
    public boolean shouldConstrainMetricsForLauncher = false;

    /**
    /**
     * The {@link RoundedCorners} if present, otherwise {@code null}.
     * The {@link RoundedCorners} if present, otherwise {@code null}.
     */
     */
@@ -381,7 +388,8 @@ public final class DisplayInfo implements Parcelable {
                && brightnessMinimum == other.brightnessMinimum
                && brightnessMinimum == other.brightnessMinimum
                && brightnessMaximum == other.brightnessMaximum
                && brightnessMaximum == other.brightnessMaximum
                && brightnessDefault == other.brightnessDefault
                && brightnessDefault == other.brightnessDefault
                && Objects.equals(roundedCorners, other.roundedCorners);
                && Objects.equals(roundedCorners, other.roundedCorners)
                && shouldConstrainMetricsForLauncher == other.shouldConstrainMetricsForLauncher;
    }
    }


    @Override
    @Override
@@ -432,6 +440,7 @@ public final class DisplayInfo implements Parcelable {
        brightnessMaximum = other.brightnessMaximum;
        brightnessMaximum = other.brightnessMaximum;
        brightnessDefault = other.brightnessDefault;
        brightnessDefault = other.brightnessDefault;
        roundedCorners = other.roundedCorners;
        roundedCorners = other.roundedCorners;
        shouldConstrainMetricsForLauncher = other.shouldConstrainMetricsForLauncher;
    }
    }


    public void readFromParcel(Parcel source) {
    public void readFromParcel(Parcel source) {
@@ -488,6 +497,7 @@ public final class DisplayInfo implements Parcelable {
        for (int i = 0; i < numUserDisabledFormats; i++) {
        for (int i = 0; i < numUserDisabledFormats; i++) {
            userDisabledHdrTypes[i] = source.readInt();
            userDisabledHdrTypes[i] = source.readInt();
        }
        }
        shouldConstrainMetricsForLauncher = source.readBoolean();
    }
    }


    @Override
    @Override
@@ -542,6 +552,7 @@ public final class DisplayInfo implements Parcelable {
        for (int i = 0; i < userDisabledHdrTypes.length; i++) {
        for (int i = 0; i < userDisabledHdrTypes.length; i++) {
            dest.writeInt(userDisabledHdrTypes[i]);
            dest.writeInt(userDisabledHdrTypes[i]);
        }
        }
        dest.writeBoolean(shouldConstrainMetricsForLauncher);
    }
    }


    @Override
    @Override
@@ -796,6 +807,8 @@ public final class DisplayInfo implements Parcelable {
        sb.append(brightnessMaximum);
        sb.append(brightnessMaximum);
        sb.append(", brightnessDefault ");
        sb.append(", brightnessDefault ");
        sb.append(brightnessDefault);
        sb.append(brightnessDefault);
        sb.append(", shouldConstrainMetricsForLauncher ");
        sb.append(shouldConstrainMetricsForLauncher);
        sb.append("}");
        sb.append("}");
        return sb.toString();
        return sb.toString();
    }
    }
+18 −2
Original line number Original line Diff line number Diff line
@@ -63,8 +63,6 @@ import android.hardware.display.DisplayManagerGlobal;
import android.hardware.display.DisplayManagerInternal;
import android.hardware.display.DisplayManagerInternal;
import android.hardware.display.DisplayManagerInternal.DisplayGroupListener;
import android.hardware.display.DisplayManagerInternal.DisplayGroupListener;
import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
import android.hardware.display.DisplayManagerInternal.RefreshRateLimitation;
import android.hardware.display.DisplayManagerInternal.RefreshRateRange;
import android.hardware.display.DisplayViewport;
import android.hardware.display.DisplayViewport;
import android.hardware.display.DisplayedContentSample;
import android.hardware.display.DisplayedContentSample;
import android.hardware.display.DisplayedContentSamplingAttributes;
import android.hardware.display.DisplayedContentSamplingAttributes;
@@ -636,6 +634,9 @@ public final class DisplayManagerService extends SystemService {
        synchronized (mSyncRoot) {
        synchronized (mSyncRoot) {
            final LogicalDisplay display = mLogicalDisplayMapper.getDisplayLocked(displayId);
            final LogicalDisplay display = mLogicalDisplayMapper.getDisplayLocked(displayId);
            if (display != null) {
            if (display != null) {
                // Do not let constrain be overwritten by override from WindowManager.
                info.shouldConstrainMetricsForLauncher =
                        display.getDisplayInfoLocked().shouldConstrainMetricsForLauncher;
                if (display.setDisplayInfoOverrideFromWindowManagerLocked(info)) {
                if (display.setDisplayInfoOverrideFromWindowManagerLocked(info)) {
                    handleLogicalDisplayChangedLocked(display);
                    handleLogicalDisplayChangedLocked(display);
                    scheduleTraversalLocked(false);
                    scheduleTraversalLocked(false);
@@ -1723,6 +1724,21 @@ public final class DisplayManagerService extends SystemService {
        }
        }
    }
    }


    void setShouldConstrainMetricsForLauncher(boolean constrain) {
        // Apply constrain for every display.
        synchronized (mSyncRoot) {
            int[] displayIds = mLogicalDisplayMapper.getDisplayIdsLocked(Process.myUid());
            for (int i : displayIds) {
                final LogicalDisplay display = mLogicalDisplayMapper.getDisplayLocked(i);
                if (display == null) {
                    return;
                }
                display.getDisplayInfoLocked().shouldConstrainMetricsForLauncher = constrain;
                setDisplayInfoOverrideFromWindowManagerInternal(i, display.getDisplayInfoLocked());
            }
        }
    }

    private void clearViewportsLocked() {
    private void clearViewportsLocked() {
        mViewports.clear();
        mViewports.clear();
    }
    }
+16 −0
Original line number Original line Diff line number Diff line
@@ -58,6 +58,8 @@ class DisplayManagerShellCommand extends ShellCommand {
                return setDisplayModeDirectorLoggingEnabled(false);
                return setDisplayModeDirectorLoggingEnabled(false);
            case "dwb-set-cct":
            case "dwb-set-cct":
                return setAmbientColorTemperatureOverride();
                return setAmbientColorTemperatureOverride();
            case "constrain-launcher-metrics":
                return setConstrainLauncherMetrics();
            default:
            default:
                return handleDefaultCommands(cmd);
                return handleDefaultCommands(cmd);
        }
        }
@@ -88,6 +90,9 @@ class DisplayManagerShellCommand extends ShellCommand {
        pw.println("    Disable display mode director logging.");
        pw.println("    Disable display mode director logging.");
        pw.println("  dwb-set-cct CCT");
        pw.println("  dwb-set-cct CCT");
        pw.println("    Sets the ambient color temperature override to CCT (use -1 to disable).");
        pw.println("    Sets the ambient color temperature override to CCT (use -1 to disable).");
        pw.println("  constrain-launcher-metrics [true|false]");
        pw.println("    Sets if Display#getRealSize and getRealMetrics should be constrained for ");
        pw.println("    Launcher.");
        pw.println();
        pw.println();
        Intent.printIntentArgsHelp(pw , "");
        Intent.printIntentArgsHelp(pw , "");
    }
    }
@@ -150,4 +155,15 @@ class DisplayManagerShellCommand extends ShellCommand {
        mService.setAmbientColorTemperatureOverride(cct);
        mService.setAmbientColorTemperatureOverride(cct);
        return 0;
        return 0;
    }
    }

    private int setConstrainLauncherMetrics() {
        String constrainText = getNextArg();
        if (constrainText == null) {
            getErrPrintWriter().println("Error: no value specified");
            return 1;
        }
        boolean constrain = Boolean.parseBoolean(constrainText);
        mService.setShouldConstrainMetricsForLauncher(constrain);
        return 0;
    }
}
}
+2 −0
Original line number Original line Diff line number Diff line
@@ -233,6 +233,8 @@ final class LogicalDisplay {
                info.physicalXDpi = mOverrideDisplayInfo.physicalXDpi;
                info.physicalXDpi = mOverrideDisplayInfo.physicalXDpi;
                info.physicalYDpi = mOverrideDisplayInfo.physicalYDpi;
                info.physicalYDpi = mOverrideDisplayInfo.physicalYDpi;
                info.roundedCorners = mOverrideDisplayInfo.roundedCorners;
                info.roundedCorners = mOverrideDisplayInfo.roundedCorners;
                info.shouldConstrainMetricsForLauncher =
                        mOverrideDisplayInfo.shouldConstrainMetricsForLauncher;
            }
            }
            mInfo.set(info);
            mInfo.set(info);
        }
        }