Loading core/api/system-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -5293,13 +5293,19 @@ package android.hardware.display { field public static final int VIRTUAL_DISPLAY_FLAG_TRUSTED = 1024; // 0x400 } public abstract static class VirtualDisplay.Callback { method @FlaggedApi("android.companion.virtualdevice.flags.device_aware_display_power") public void onRequestedBrightnessChanged(@FloatRange(from=0.0f, to=1.0f) float); } public final class VirtualDisplayConfig implements android.os.Parcelable { method @FlaggedApi("android.companion.virtualdevice.flags.device_aware_display_power") @FloatRange(from=0.0f, to=1.0f) public float getDefaultBrightness(); method @FlaggedApi("android.companion.virtualdevice.flags.virtual_display_insets") @Nullable public android.view.DisplayCutout getDisplayCutout(); method @FlaggedApi("android.companion.virtual.flags.vdm_custom_home") public boolean isHomeSupported(); method @FlaggedApi("com.android.window.flags.vdm_force_app_universal_resizable_api") public boolean isIgnoreActivitySizeRestrictions(); } public static final class VirtualDisplayConfig.Builder { method @FlaggedApi("android.companion.virtualdevice.flags.device_aware_display_power") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setDefaultBrightness(@FloatRange(from=0.0f, to=1.0f) float); method @FlaggedApi("android.companion.virtualdevice.flags.virtual_display_insets") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setDisplayCutout(@Nullable android.view.DisplayCutout); method @FlaggedApi("android.companion.virtual.flags.vdm_custom_home") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setHomeSupported(boolean); method @FlaggedApi("com.android.window.flags.vdm_force_app_universal_resizable_api") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setIgnoreActivitySizeRestrictions(boolean); core/java/android/hardware/display/DisplayManagerGlobal.java +7 −0 Original line number Diff line number Diff line Loading @@ -1432,6 +1432,13 @@ public final class DisplayManagerGlobal { mExecutor.execute(mCallback::onStopped); } } @Override // Binder call public void onRequestedBrightnessChanged(float brightness) { if (mCallback != null) { mExecutor.execute(() -> mCallback.onRequestedBrightnessChanged(brightness)); } } } /** Loading core/java/android/hardware/display/IVirtualDisplayCallback.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -38,4 +38,9 @@ oneway interface IVirtualDisplayCallback { * of the application to release() the virtual display. */ void onStopped(); /** * Called when the virtual display's requested brightness has changed. */ void onRequestedBrightnessChanged(float brightness); } core/java/android/hardware/display/VirtualDisplay.java +22 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.hardware.display; import android.annotation.FlaggedApi; import android.annotation.FloatRange; import android.annotation.SystemApi; import android.view.Display; import android.view.Surface; Loading Loading @@ -164,5 +166,25 @@ public final class VirtualDisplay { * of the application to release() the virtual display. */ public void onStopped() { } /** * Called when the requested brightness of the display has changed. * * <p>The system may adjust the display's brightness based on user or app activity. This * callback will only be invoked if the display has an explicitly specified default * brightness value.</p> * * <p>Value of {@code 0.0} indicates the minimum supported brightness and value of * {@code 1.0} indicates the maximum supported brightness.</p> * * @see android.view.View#setKeepScreenOn(boolean) * @see android.view.WindowManager.LayoutParams#screenBrightness * @see VirtualDisplayConfig.Builder#setDefaultBrightness(float) * @hide */ @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER) @SystemApi public void onRequestedBrightnessChanged( @FloatRange(from = 0.0f, to = 1.0f) float brightness) {} } } core/java/android/hardware/display/VirtualDisplayConfig.java +59 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.media.projection.MediaProjection; import android.os.Handler; import android.os.Parcel; import android.os.Parcelable; import android.os.PowerManager; import android.util.ArraySet; import android.view.Display; import android.view.DisplayCutout; Loading Loading @@ -61,6 +62,7 @@ public final class VirtualDisplayConfig implements Parcelable { private final boolean mIsHomeSupported; private final DisplayCutout mDisplayCutout; private final boolean mIgnoreActivitySizeRestrictions; private final float mDefaultBrightness; private VirtualDisplayConfig( @NonNull String name, Loading @@ -76,7 +78,8 @@ public final class VirtualDisplayConfig implements Parcelable { float requestedRefreshRate, boolean isHomeSupported, @Nullable DisplayCutout displayCutout, boolean ignoreActivitySizeRestrictions) { boolean ignoreActivitySizeRestrictions, @FloatRange(from = 0.0f, to = 1.0f) float defaultBrightness) { mName = name; mWidth = width; mHeight = height; Loading @@ -91,6 +94,7 @@ public final class VirtualDisplayConfig implements Parcelable { mIsHomeSupported = isHomeSupported; mDisplayCutout = displayCutout; mIgnoreActivitySizeRestrictions = ignoreActivitySizeRestrictions; mDefaultBrightness = defaultBrightness; } /** Loading Loading @@ -156,6 +160,22 @@ public final class VirtualDisplayConfig implements Parcelable { return mDisplayCutout; } /** * Returns the default brightness of the display. * * <p>Value of {@code 0.0} indicates the minimum supported brightness and value of {@code 1.0} * indicates the maximum supported brightness.</p> * * @see Builder#setDefaultBrightness(float) * @hide */ @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER) @SystemApi public @FloatRange(from = 0.0f, to = 1.0f) float getDefaultBrightness() { return mDefaultBrightness; } /** * Returns the unique identifier for the display. Shouldn't be displayed to the user. * @hide Loading Loading @@ -245,6 +265,7 @@ public final class VirtualDisplayConfig implements Parcelable { dest.writeBoolean(mIsHomeSupported); DisplayCutout.ParcelableWrapper.writeCutoutToParcel(mDisplayCutout, dest, flags); dest.writeBoolean(mIgnoreActivitySizeRestrictions); dest.writeFloat(mDefaultBrightness); } @Override Loading Loading @@ -272,7 +293,8 @@ public final class VirtualDisplayConfig implements Parcelable { && mRequestedRefreshRate == that.mRequestedRefreshRate && mIsHomeSupported == that.mIsHomeSupported && mIgnoreActivitySizeRestrictions == that.mIgnoreActivitySizeRestrictions && Objects.equals(mDisplayCutout, that.mDisplayCutout); && Objects.equals(mDisplayCutout, that.mDisplayCutout) && mDefaultBrightness == that.mDefaultBrightness; } @Override Loading @@ -281,7 +303,7 @@ public final class VirtualDisplayConfig implements Parcelable { mName, mWidth, mHeight, mDensityDpi, mFlags, mSurface, mUniqueId, mDisplayIdToMirror, mWindowManagerMirroringEnabled, mDisplayCategories, mRequestedRefreshRate, mIsHomeSupported, mDisplayCutout, mIgnoreActivitySizeRestrictions); mIgnoreActivitySizeRestrictions, mDefaultBrightness); return hashCode; } Loading @@ -303,6 +325,7 @@ public final class VirtualDisplayConfig implements Parcelable { + " mIsHomeSupported=" + mIsHomeSupported + " mDisplayCutout=" + mDisplayCutout + " mIgnoreActivitySizeRestrictions=" + mIgnoreActivitySizeRestrictions + " mDefaultBrightness=" + mDefaultBrightness + ")"; } Loading @@ -321,6 +344,7 @@ public final class VirtualDisplayConfig implements Parcelable { mIsHomeSupported = in.readBoolean(); mDisplayCutout = DisplayCutout.ParcelableWrapper.readCutoutFromParcel(in); mIgnoreActivitySizeRestrictions = in.readBoolean(); mDefaultBrightness = in.readFloat(); } @NonNull Loading Loading @@ -355,6 +379,7 @@ public final class VirtualDisplayConfig implements Parcelable { private boolean mIsHomeSupported = false; private DisplayCutout mDisplayCutout = null; private boolean mIgnoreActivitySizeRestrictions = false; private float mDefaultBrightness = 0.0f; /** * Creates a new Builder. Loading Loading @@ -546,6 +571,35 @@ public final class VirtualDisplayConfig implements Parcelable { return this; } /** * Sets the default brightness of the display. * * <p>The system will use this brightness value whenever the display should be bright, i.e. * it is powered on and not dimmed due to user activity or app activity.</p> * * <p>Value of {@code 0.0} indicates the minimum supported brightness and value of * {@code 1.0} indicates the maximum supported brightness.</p> * * <p>If unset, defaults to {@code 0.0}</p> * * @see android.view.View#setKeepScreenOn(boolean) * @see Builder#setDefaultBrightness(float) * @see VirtualDisplay.Callback#onRequestedBrightnessChanged(float) * @hide */ @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER) @SystemApi @NonNull public Builder setDefaultBrightness(@FloatRange(from = 0.0f, to = 1.0f) float brightness) { if (brightness < PowerManager.BRIGHTNESS_MIN || brightness > PowerManager.BRIGHTNESS_MAX) { throw new IllegalArgumentException( "Virtual display default brightness must be in range [0.0, 1.0]"); } mDefaultBrightness = brightness; return this; } /** * Builds the {@link VirtualDisplayConfig} instance. */ Loading @@ -565,7 +619,8 @@ public final class VirtualDisplayConfig implements Parcelable { mRequestedRefreshRate, mIsHomeSupported, mDisplayCutout, mIgnoreActivitySizeRestrictions); mIgnoreActivitySizeRestrictions, mDefaultBrightness); } } } Loading
core/api/system-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -5293,13 +5293,19 @@ package android.hardware.display { field public static final int VIRTUAL_DISPLAY_FLAG_TRUSTED = 1024; // 0x400 } public abstract static class VirtualDisplay.Callback { method @FlaggedApi("android.companion.virtualdevice.flags.device_aware_display_power") public void onRequestedBrightnessChanged(@FloatRange(from=0.0f, to=1.0f) float); } public final class VirtualDisplayConfig implements android.os.Parcelable { method @FlaggedApi("android.companion.virtualdevice.flags.device_aware_display_power") @FloatRange(from=0.0f, to=1.0f) public float getDefaultBrightness(); method @FlaggedApi("android.companion.virtualdevice.flags.virtual_display_insets") @Nullable public android.view.DisplayCutout getDisplayCutout(); method @FlaggedApi("android.companion.virtual.flags.vdm_custom_home") public boolean isHomeSupported(); method @FlaggedApi("com.android.window.flags.vdm_force_app_universal_resizable_api") public boolean isIgnoreActivitySizeRestrictions(); } public static final class VirtualDisplayConfig.Builder { method @FlaggedApi("android.companion.virtualdevice.flags.device_aware_display_power") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setDefaultBrightness(@FloatRange(from=0.0f, to=1.0f) float); method @FlaggedApi("android.companion.virtualdevice.flags.virtual_display_insets") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setDisplayCutout(@Nullable android.view.DisplayCutout); method @FlaggedApi("android.companion.virtual.flags.vdm_custom_home") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setHomeSupported(boolean); method @FlaggedApi("com.android.window.flags.vdm_force_app_universal_resizable_api") @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setIgnoreActivitySizeRestrictions(boolean);
core/java/android/hardware/display/DisplayManagerGlobal.java +7 −0 Original line number Diff line number Diff line Loading @@ -1432,6 +1432,13 @@ public final class DisplayManagerGlobal { mExecutor.execute(mCallback::onStopped); } } @Override // Binder call public void onRequestedBrightnessChanged(float brightness) { if (mCallback != null) { mExecutor.execute(() -> mCallback.onRequestedBrightnessChanged(brightness)); } } } /** Loading
core/java/android/hardware/display/IVirtualDisplayCallback.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -38,4 +38,9 @@ oneway interface IVirtualDisplayCallback { * of the application to release() the virtual display. */ void onStopped(); /** * Called when the virtual display's requested brightness has changed. */ void onRequestedBrightnessChanged(float brightness); }
core/java/android/hardware/display/VirtualDisplay.java +22 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.hardware.display; import android.annotation.FlaggedApi; import android.annotation.FloatRange; import android.annotation.SystemApi; import android.view.Display; import android.view.Surface; Loading Loading @@ -164,5 +166,25 @@ public final class VirtualDisplay { * of the application to release() the virtual display. */ public void onStopped() { } /** * Called when the requested brightness of the display has changed. * * <p>The system may adjust the display's brightness based on user or app activity. This * callback will only be invoked if the display has an explicitly specified default * brightness value.</p> * * <p>Value of {@code 0.0} indicates the minimum supported brightness and value of * {@code 1.0} indicates the maximum supported brightness.</p> * * @see android.view.View#setKeepScreenOn(boolean) * @see android.view.WindowManager.LayoutParams#screenBrightness * @see VirtualDisplayConfig.Builder#setDefaultBrightness(float) * @hide */ @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER) @SystemApi public void onRequestedBrightnessChanged( @FloatRange(from = 0.0f, to = 1.0f) float brightness) {} } }
core/java/android/hardware/display/VirtualDisplayConfig.java +59 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.media.projection.MediaProjection; import android.os.Handler; import android.os.Parcel; import android.os.Parcelable; import android.os.PowerManager; import android.util.ArraySet; import android.view.Display; import android.view.DisplayCutout; Loading Loading @@ -61,6 +62,7 @@ public final class VirtualDisplayConfig implements Parcelable { private final boolean mIsHomeSupported; private final DisplayCutout mDisplayCutout; private final boolean mIgnoreActivitySizeRestrictions; private final float mDefaultBrightness; private VirtualDisplayConfig( @NonNull String name, Loading @@ -76,7 +78,8 @@ public final class VirtualDisplayConfig implements Parcelable { float requestedRefreshRate, boolean isHomeSupported, @Nullable DisplayCutout displayCutout, boolean ignoreActivitySizeRestrictions) { boolean ignoreActivitySizeRestrictions, @FloatRange(from = 0.0f, to = 1.0f) float defaultBrightness) { mName = name; mWidth = width; mHeight = height; Loading @@ -91,6 +94,7 @@ public final class VirtualDisplayConfig implements Parcelable { mIsHomeSupported = isHomeSupported; mDisplayCutout = displayCutout; mIgnoreActivitySizeRestrictions = ignoreActivitySizeRestrictions; mDefaultBrightness = defaultBrightness; } /** Loading Loading @@ -156,6 +160,22 @@ public final class VirtualDisplayConfig implements Parcelable { return mDisplayCutout; } /** * Returns the default brightness of the display. * * <p>Value of {@code 0.0} indicates the minimum supported brightness and value of {@code 1.0} * indicates the maximum supported brightness.</p> * * @see Builder#setDefaultBrightness(float) * @hide */ @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER) @SystemApi public @FloatRange(from = 0.0f, to = 1.0f) float getDefaultBrightness() { return mDefaultBrightness; } /** * Returns the unique identifier for the display. Shouldn't be displayed to the user. * @hide Loading Loading @@ -245,6 +265,7 @@ public final class VirtualDisplayConfig implements Parcelable { dest.writeBoolean(mIsHomeSupported); DisplayCutout.ParcelableWrapper.writeCutoutToParcel(mDisplayCutout, dest, flags); dest.writeBoolean(mIgnoreActivitySizeRestrictions); dest.writeFloat(mDefaultBrightness); } @Override Loading Loading @@ -272,7 +293,8 @@ public final class VirtualDisplayConfig implements Parcelable { && mRequestedRefreshRate == that.mRequestedRefreshRate && mIsHomeSupported == that.mIsHomeSupported && mIgnoreActivitySizeRestrictions == that.mIgnoreActivitySizeRestrictions && Objects.equals(mDisplayCutout, that.mDisplayCutout); && Objects.equals(mDisplayCutout, that.mDisplayCutout) && mDefaultBrightness == that.mDefaultBrightness; } @Override Loading @@ -281,7 +303,7 @@ public final class VirtualDisplayConfig implements Parcelable { mName, mWidth, mHeight, mDensityDpi, mFlags, mSurface, mUniqueId, mDisplayIdToMirror, mWindowManagerMirroringEnabled, mDisplayCategories, mRequestedRefreshRate, mIsHomeSupported, mDisplayCutout, mIgnoreActivitySizeRestrictions); mIgnoreActivitySizeRestrictions, mDefaultBrightness); return hashCode; } Loading @@ -303,6 +325,7 @@ public final class VirtualDisplayConfig implements Parcelable { + " mIsHomeSupported=" + mIsHomeSupported + " mDisplayCutout=" + mDisplayCutout + " mIgnoreActivitySizeRestrictions=" + mIgnoreActivitySizeRestrictions + " mDefaultBrightness=" + mDefaultBrightness + ")"; } Loading @@ -321,6 +344,7 @@ public final class VirtualDisplayConfig implements Parcelable { mIsHomeSupported = in.readBoolean(); mDisplayCutout = DisplayCutout.ParcelableWrapper.readCutoutFromParcel(in); mIgnoreActivitySizeRestrictions = in.readBoolean(); mDefaultBrightness = in.readFloat(); } @NonNull Loading Loading @@ -355,6 +379,7 @@ public final class VirtualDisplayConfig implements Parcelable { private boolean mIsHomeSupported = false; private DisplayCutout mDisplayCutout = null; private boolean mIgnoreActivitySizeRestrictions = false; private float mDefaultBrightness = 0.0f; /** * Creates a new Builder. Loading Loading @@ -546,6 +571,35 @@ public final class VirtualDisplayConfig implements Parcelable { return this; } /** * Sets the default brightness of the display. * * <p>The system will use this brightness value whenever the display should be bright, i.e. * it is powered on and not dimmed due to user activity or app activity.</p> * * <p>Value of {@code 0.0} indicates the minimum supported brightness and value of * {@code 1.0} indicates the maximum supported brightness.</p> * * <p>If unset, defaults to {@code 0.0}</p> * * @see android.view.View#setKeepScreenOn(boolean) * @see Builder#setDefaultBrightness(float) * @see VirtualDisplay.Callback#onRequestedBrightnessChanged(float) * @hide */ @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER) @SystemApi @NonNull public Builder setDefaultBrightness(@FloatRange(from = 0.0f, to = 1.0f) float brightness) { if (brightness < PowerManager.BRIGHTNESS_MIN || brightness > PowerManager.BRIGHTNESS_MAX) { throw new IllegalArgumentException( "Virtual display default brightness must be in range [0.0, 1.0]"); } mDefaultBrightness = brightness; return this; } /** * Builds the {@link VirtualDisplayConfig} instance. */ Loading @@ -565,7 +619,8 @@ public final class VirtualDisplayConfig implements Parcelable { mRequestedRefreshRate, mIsHomeSupported, mDisplayCutout, mIgnoreActivitySizeRestrictions); mIgnoreActivitySizeRestrictions, mDefaultBrightness); } } }