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

Commit bec97e95 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Automerger Merge Worker
Browse files

Merge "Make VirtualDisplayConfig public." into udc-dev am: da54b954

parents 39954872 da54b954
Loading
Loading
Loading
Loading
+26 −2
Original line number Original line Diff line number Diff line
@@ -19527,9 +19527,9 @@ package android.hardware.display {
  public final class DisplayManager {
  public final class DisplayManager {
    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int);
    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, float, @Nullable android.view.Surface, int);
    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int, @Nullable android.hardware.display.VirtualDisplay.Callback, @Nullable android.os.Handler);
    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int, @Nullable android.hardware.display.VirtualDisplay.Callback, @Nullable android.os.Handler);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, float, @Nullable android.view.Surface, int, @Nullable android.os.Handler, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull android.hardware.display.VirtualDisplayConfig);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull android.hardware.display.VirtualDisplayConfig, @Nullable android.os.Handler, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method public android.view.Display getDisplay(int);
    method public android.view.Display getDisplay(int);
    method public android.view.Display[] getDisplays();
    method public android.view.Display[] getDisplays();
    method public android.view.Display[] getDisplays(String);
    method public android.view.Display[] getDisplays(String);
@@ -19584,6 +19584,30 @@ package android.hardware.display {
    method public void onStopped();
    method public void onStopped();
  }
  }
  public final class VirtualDisplayConfig implements android.os.Parcelable {
    method public int describeContents();
    method public int getDensityDpi();
    method @NonNull public java.util.List<java.lang.String> getDisplayCategories();
    method public int getFlags();
    method public int getHeight();
    method @NonNull public String getName();
    method public float getRequestedRefreshRate();
    method @Nullable public android.view.Surface getSurface();
    method public int getWidth();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.hardware.display.VirtualDisplayConfig> CREATOR;
  }
  public static final class VirtualDisplayConfig.Builder {
    ctor public VirtualDisplayConfig.Builder(@NonNull String, @IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int);
    method @NonNull public android.hardware.display.VirtualDisplayConfig.Builder addDisplayCategory(@NonNull String);
    method @NonNull public android.hardware.display.VirtualDisplayConfig build();
    method @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setDisplayCategories(@NonNull java.util.List<java.lang.String>);
    method @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setFlags(int);
    method @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setRequestedRefreshRate(@FloatRange(from=0.0f) float);
    method @NonNull public android.hardware.display.VirtualDisplayConfig.Builder setSurface(@Nullable android.view.Surface);
  }
}
}
package android.hardware.fingerprint {
package android.hardware.fingerprint {
+2 −2
Original line number Original line Diff line number Diff line
@@ -3217,8 +3217,8 @@ package android.companion.virtual {
    method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void close();
    method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void close();
    method @NonNull public android.content.Context createContext();
    method @NonNull public android.content.Context createContext();
    method @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.companion.virtual.audio.VirtualAudioDevice createVirtualAudioDevice(@NonNull android.hardware.display.VirtualDisplay, @Nullable java.util.concurrent.Executor, @Nullable android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback);
    method @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.companion.virtual.audio.VirtualAudioDevice createVirtualAudioDevice(@NonNull android.hardware.display.VirtualDisplay, @Nullable java.util.concurrent.Executor, @Nullable android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method @Deprecated @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @NonNull java.util.List<java.lang.String>, @Nullable android.view.Surface, int, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull android.hardware.display.VirtualDisplayConfig, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.hardware.input.VirtualDpad createVirtualDpad(@NonNull android.hardware.input.VirtualDpadConfig);
    method @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.hardware.input.VirtualDpad createVirtualDpad(@NonNull android.hardware.input.VirtualDpadConfig);
    method @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.hardware.input.VirtualKeyboard createVirtualKeyboard(@NonNull android.hardware.input.VirtualKeyboardConfig);
    method @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.hardware.input.VirtualKeyboard createVirtualKeyboard(@NonNull android.hardware.input.VirtualKeyboardConfig);
    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.hardware.input.VirtualKeyboard createVirtualKeyboard(@NonNull android.hardware.display.VirtualDisplay, @NonNull String, int, int);
    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public android.hardware.input.VirtualKeyboard createVirtualKeyboard(@NonNull android.hardware.display.VirtualDisplay, @NonNull String, int, int);
+7 −57
Original line number Original line Diff line number Diff line
@@ -89,14 +89,6 @@ public final class VirtualDeviceManager {


    private static final String TAG = "VirtualDeviceManager";
    private static final String TAG = "VirtualDeviceManager";


    private static final int DEFAULT_VIRTUAL_DISPLAY_FLAGS =
            DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
                    | DisplayManager.VIRTUAL_DISPLAY_FLAG_ROTATES_WITH_CONTENT
                    | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
                    | DisplayManager.VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL
                    | DisplayManager.VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH
                    | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS;

    /**
    /**
     * Broadcast Action: A Virtual Device was removed.
     * Broadcast Action: A Virtual Device was removed.
     *
     *
@@ -539,7 +531,11 @@ public final class VirtualDeviceManager {
         * not create the virtual display.
         * not create the virtual display.
         *
         *
         * @see DisplayManager#createVirtualDisplay
         * @see DisplayManager#createVirtualDisplay
         *
         * @deprecated use {@link #createVirtualDisplay(VirtualDisplayConfig, Executor,
         * VirtualDisplay.Callback)}
         */
         */
        @Deprecated
        @Nullable
        @Nullable
        public VirtualDisplay createVirtualDisplay(
        public VirtualDisplay createVirtualDisplay(
                @IntRange(from = 1) int width,
                @IntRange(from = 1) int width,
@@ -552,30 +548,16 @@ public final class VirtualDeviceManager {
            VirtualDisplayConfig config = new VirtualDisplayConfig.Builder(
            VirtualDisplayConfig config = new VirtualDisplayConfig.Builder(
                    getVirtualDisplayName(), width, height, densityDpi)
                    getVirtualDisplayName(), width, height, densityDpi)
                    .setSurface(surface)
                    .setSurface(surface)
                    .setFlags(getVirtualDisplayFlags(flags))
                    .setFlags(flags)
                    .build();
                    .build();
            return createVirtualDisplayInternal(config, executor, callback);
            return createVirtualDisplay(config, executor, callback);
        }
        }


        /**
        /**
         * Creates a virtual display for this virtual device. All displays created on the same
         * Creates a virtual display for this virtual device. All displays created on the same
         * device belongs to the same display group.
         * device belongs to the same display group.
         *
         *
         * @param width The width of the virtual display in pixels, must be greater than 0.
         * @param config The configuration of the display.
         * @param height The height of the virtual display in pixels, must be greater than 0.
         * @param densityDpi The density of the virtual display in dpi, must be greater than 0.
         * @param displayCategories The categories of the virtual display, indicating the type of
         * activities allowed to run on the display. Activities can declare their type using
         * {@link android.content.pm.ActivityInfo#requiredDisplayCategory}.
         * @param surface The surface to which the content of the virtual display should
         * be rendered, or null if there is none initially. The surface can also be set later using
         * {@link VirtualDisplay#setSurface(Surface)}.
         * @param flags A combination of virtual display flags accepted by
         * {@link DisplayManager#createVirtualDisplay}. In addition, the following flags are
         * automatically set for all virtual devices:
         * {@link DisplayManager#VIRTUAL_DISPLAY_FLAG_PUBLIC VIRTUAL_DISPLAY_FLAG_PUBLIC} and
         * {@link DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
         * VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY}.
         * @param executor The executor on which {@code callback} will be invoked. This is ignored
         * @param executor The executor on which {@code callback} will be invoked. This is ignored
         * if {@code callback} is {@code null}. If {@code callback} is specified, this executor must
         * if {@code callback} is {@code null}. If {@code callback} is specified, this executor must
         * not be null.
         * not be null.
@@ -587,28 +569,6 @@ public final class VirtualDeviceManager {
         */
         */
        @Nullable
        @Nullable
        public VirtualDisplay createVirtualDisplay(
        public VirtualDisplay createVirtualDisplay(
                @IntRange(from = 1) int width,
                @IntRange(from = 1) int height,
                @IntRange(from = 1) int densityDpi,
                @NonNull List<String> displayCategories,
                @Nullable Surface surface,
                @VirtualDisplayFlag int flags,
                @Nullable @CallbackExecutor Executor executor,
                @Nullable VirtualDisplay.Callback callback) {
            VirtualDisplayConfig config = new VirtualDisplayConfig.Builder(
                    getVirtualDisplayName(), width, height, densityDpi)
                    .setDisplayCategories(displayCategories)
                    .setSurface(surface)
                    .setFlags(getVirtualDisplayFlags(flags))
                    .build();
            return createVirtualDisplayInternal(config, executor, callback);
        }

        /**
         * @hide
         */
        @Nullable
        private VirtualDisplay createVirtualDisplayInternal(
                @NonNull VirtualDisplayConfig config,
                @NonNull VirtualDisplayConfig config,
                @Nullable @CallbackExecutor Executor executor,
                @Nullable @CallbackExecutor Executor executor,
                @Nullable VirtualDisplay.Callback callback) {
                @Nullable VirtualDisplay.Callback callback) {
@@ -897,16 +857,6 @@ public final class VirtualDeviceManager {
            }
            }
        }
        }


        /**
         * Returns the display flags that should be added to a particular virtual display.
         * Additional device-level flags from {@link
         * com.android.server.companion.virtual.VirtualDeviceImpl#getBaseVirtualDisplayFlags()} will
         * be added by DisplayManagerService.
         */
        private int getVirtualDisplayFlags(int flags) {
            return DEFAULT_VIRTUAL_DISPLAY_FLAGS | flags;
        }

        private String getVirtualDisplayName() {
        private String getVirtualDisplayName() {
            try {
            try {
                // Currently this just use the device ID, which means all of the virtual displays
                // Currently this just use the device ID, which means all of the virtual displays
+22 −58
Original line number Original line Diff line number Diff line
@@ -987,24 +987,6 @@ public final class DisplayManager {
        return createVirtualDisplay(name, width, height, densityDpi, surface, flags, null, null);
        return createVirtualDisplay(name, width, height, densityDpi, surface, flags, null, null);
    }
    }


    /**
     * Creates a virtual display.
     *
     * @see #createVirtualDisplay(String, int, int, int, float, Surface, int,
     * Handler, VirtualDisplay.Callback)
     */
    @Nullable
    public VirtualDisplay createVirtualDisplay(@NonNull String name,
            @IntRange(from = 1) int width,
            @IntRange(from = 1) int height,
            @IntRange(from = 1) int densityDpi,
            float requestedRefreshRate,
            @Nullable Surface surface,
            @VirtualDisplayFlag int flags) {
        return createVirtualDisplay(name, width, height, densityDpi, requestedRefreshRate,
                surface, flags, null, null);
    }

    /**
    /**
     * Creates a virtual display.
     * Creates a virtual display.
     * <p>
     * <p>
@@ -1056,8 +1038,23 @@ public final class DisplayManager {
            @VirtualDisplayFlag int flags,
            @VirtualDisplayFlag int flags,
            @Nullable VirtualDisplay.Callback callback,
            @Nullable VirtualDisplay.Callback callback,
            @Nullable Handler handler) {
            @Nullable Handler handler) {
        return createVirtualDisplay(name, width, height, densityDpi, 0.0f, surface,
        final VirtualDisplayConfig.Builder builder =
                flags, handler, callback);
                new VirtualDisplayConfig.Builder(name, width, height, densityDpi);
        builder.setFlags(flags);
        if (surface != null) {
            builder.setSurface(surface);
        }
        return createVirtualDisplay(builder.build(), handler, callback);
    }

    /**
     * Creates a virtual display.
     *
     * @see #createVirtualDisplay(VirtualDisplayConfig, Handler, VirtualDisplay.Callback)
     */
    @Nullable
    public VirtualDisplay createVirtualDisplay(@NonNull VirtualDisplayConfig config) {
        return createVirtualDisplay(config, /*handler=*/null, /*callback=*/null);
    }
    }


    /**
    /**
@@ -1084,21 +1081,7 @@ public final class DisplayManager {
     * turning off the screen.
     * turning off the screen.
     * </p>
     * </p>
     *
     *
     * @param name The name of the virtual display, must be non-empty.
     * @param config The configuration of the virtual display, must be non-null.
     * @param width The width of the virtual display in pixels, must be greater than 0.
     * @param height The height of the virtual display in pixels, must be greater than 0.
     * @param densityDpi The density of the virtual display in dpi, must be greater than 0.
     * @param requestedRefreshRate The requested refresh rate in frames per second.
     * For best results, specify a divisor of the physical refresh rate, e.g., 30 or 60 on
     * 120hz display. If an arbitrary refresh rate is specified, the rate will be rounded
     * up or down to a divisor of the physical display. If 0 is specified, the virtual
     * display is refreshed at the physical display refresh rate.
     * @param surface The surface to which the content of the virtual display should
     * be rendered, or null if there is none initially.
     * @param flags A combination of virtual display flags:
     * {@link #VIRTUAL_DISPLAY_FLAG_PUBLIC}, {@link #VIRTUAL_DISPLAY_FLAG_PRESENTATION},
     * {@link #VIRTUAL_DISPLAY_FLAG_SECURE}, {@link #VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY},
     * or {@link #VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR}.
     * @param handler The handler on which the listener should be invoked, or null
     * @param handler The handler on which the listener should be invoked, or null
     * if the listener should be invoked on the calling thread's looper.
     * if the listener should be invoked on the calling thread's looper.
     * @param callback Callback to call when the state of the {@link VirtualDisplay} changes
     * @param callback Callback to call when the state of the {@link VirtualDisplay} changes
@@ -1106,33 +1089,14 @@ public final class DisplayManager {
     * not create the virtual display.
     * not create the virtual display.
     *
     *
     * @throws SecurityException if the caller does not have permission to create
     * @throws SecurityException if the caller does not have permission to create
     * a virtual display with the specified flags.
     * a virtual display with flags specified in the configuration.
     */
     */
    @Nullable
    @Nullable
    public VirtualDisplay createVirtualDisplay(@NonNull String name,
    public VirtualDisplay createVirtualDisplay(
            @IntRange(from = 1) int width,
            @NonNull VirtualDisplayConfig config,
            @IntRange(from = 1) int height,
            @IntRange(from = 1) int densityDpi,
            float requestedRefreshRate,
            @Nullable Surface surface,
            @VirtualDisplayFlag int flags,
            @Nullable Handler handler,
            @Nullable Handler handler,
            @Nullable VirtualDisplay.Callback callback) {
            @Nullable VirtualDisplay.Callback callback) {
        if (!ENABLE_VIRTUAL_DISPLAY_REFRESH_RATE && requestedRefreshRate != 0.0f) {
        return createVirtualDisplay(null /* projection */, config, callback, handler,
            Slog.e(TAG, "Please turn on ENABLE_VIRTUAL_DISPLAY_REFRESH_RATE to use the new api");
            return null;
        }

        final VirtualDisplayConfig.Builder builder = new VirtualDisplayConfig.Builder(name, width,
                height, densityDpi);
        builder.setFlags(flags);
        if (surface != null) {
            builder.setSurface(surface);
        }
        if (requestedRefreshRate != 0.0f) {
            builder.setRequestedRefreshRate(requestedRefreshRate);
        }
        return createVirtualDisplay(null /* projection */, builder.build(), callback, handler,
                null /* windowContext */);
                null /* windowContext */);
    }
    }


+230 −415

File changed.

Preview size limit exceeded, changes collapsed.

Loading