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

Commit 14166915 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add DisplayManager.isAlwaysOnDisplayCurrentlyAvailable" into main

parents cab8437b f000c958
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5423,6 +5423,7 @@ package android.hardware.display {
    method @Nullable @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public android.hardware.display.BrightnessConfiguration getDefaultBrightnessConfiguration();
    method public android.util.Pair<float[],float[]> getMinimumBrightnessCurve();
    method public android.graphics.Point getStableDisplaySize();
    method @FlaggedApi("com.android.server.display.feature.flags.is_always_on_available_api") public boolean isAlwaysOnDisplayCurrentlyAvailable();
    method @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public void setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration);
    method @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public void setBrightnessConfigurationForDisplay(@NonNull android.hardware.display.BrightnessConfiguration, @NonNull String);
    method @Deprecated @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_SATURATION) public void setSaturationLevel(float);
+22 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ import android.view.Surface;

import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.server.display.feature.flags.Flags;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -102,6 +103,7 @@ public final class DisplayManager {
    private final WeakDisplayCache mDisplayCache = new WeakDisplayCache();

    private int mDisplayIdToMirror = INVALID_DISPLAY;
    private AmbientDisplayConfiguration mAmbientDisplayConfiguration;

    /**
     * Broadcast receiver that indicates when the Wifi display status changes.
@@ -1612,6 +1614,17 @@ public final class DisplayManager {
        return mGlobal.shouldAlwaysRespectAppRequestedMode();
    }

    /**
     * Returns whether this device supports Always On Display.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_IS_ALWAYS_ON_AVAILABLE_API)
    public boolean isAlwaysOnDisplayCurrentlyAvailable() {
        return getAmbientDisplayConfiguration().alwaysOnAvailableForUser(mContext.getUserId());
    }

    /**
     * Returns whether device supports seamless refresh rate switching.
     *
@@ -1674,6 +1687,15 @@ public final class DisplayManager {
        }
    }

    private AmbientDisplayConfiguration getAmbientDisplayConfiguration() {
        synchronized (this) {
            if (mAmbientDisplayConfiguration == null) {
                mAmbientDisplayConfiguration = new AmbientDisplayConfiguration(mContext);
            }
        }
        return mAmbientDisplayConfiguration;
    }

    /**
     * Creates a VirtualDisplay that will mirror the content of displayIdToMirror
     * @param name The name for the virtual display
+8 −0
Original line number Diff line number Diff line
@@ -3,6 +3,14 @@ container: "system"

# Important: Flags must be accessed through DisplayManagerFlags.

flag {
    name: "is_always_on_available_api"
    namespace: "display_manager"
    description: "Allows querying of AOD availability"
    bug: "324046664"
    is_fixed_read_only: true
}

flag {
    name: "enable_port_in_display_layout"
    namespace: "display_manager"