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

Commit 797a1a97 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Android (Google) Code Review
Browse files

Merge "Clean up virtual camera flags launched in Android 15" into main

parents 5fa77b57 72201ef5
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -3436,7 +3436,7 @@ package android.companion.virtual {
    method public void close();
    method @NonNull public android.content.Context createContext();
    method @NonNull 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 @FlaggedApi("android.companion.virtual.flags.virtual_camera") @NonNull public android.companion.virtual.camera.VirtualCamera createVirtualCamera(@NonNull android.companion.virtual.camera.VirtualCameraConfig);
    method @NonNull public android.companion.virtual.camera.VirtualCamera createVirtualCamera(@NonNull android.companion.virtual.camera.VirtualCameraConfig);
    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(@NonNull android.hardware.display.VirtualDisplayConfig, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
    method @NonNull public android.hardware.input.VirtualDpad createVirtualDpad(@NonNull android.hardware.input.VirtualDpadConfig);
@@ -3499,7 +3499,7 @@ package android.companion.virtual {
    field public static final int POLICY_TYPE_ACTIVITY = 3; // 0x3
    field public static final int POLICY_TYPE_AUDIO = 1; // 0x1
    field @FlaggedApi("android.companion.virtualdevice.flags.activity_control_api") public static final int POLICY_TYPE_BLOCKED_ACTIVITY = 6; // 0x6
    field @FlaggedApi("android.companion.virtual.flags.virtual_camera") public static final int POLICY_TYPE_CAMERA = 5; // 0x5
    field public static final int POLICY_TYPE_CAMERA = 5; // 0x5
    field public static final int POLICY_TYPE_CLIPBOARD = 4; // 0x4
    field @FlaggedApi("android.companion.virtualdevice.flags.default_device_camera_access_policy") public static final int POLICY_TYPE_DEFAULT_DEVICE_CAMERA_ACCESS = 7; // 0x7
    field public static final int POLICY_TYPE_RECENTS = 2; // 0x2
@@ -3577,18 +3577,18 @@ package android.companion.virtual.audio {
package android.companion.virtual.camera {
  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCamera implements java.io.Closeable {
  public final class VirtualCamera implements java.io.Closeable {
    method public void close();
    method @NonNull public android.companion.virtual.camera.VirtualCameraConfig getConfig();
  }
  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public interface VirtualCameraCallback {
  public interface VirtualCameraCallback {
    method public default void onProcessCaptureRequest(int, long);
    method public void onStreamClosed(int);
    method public void onStreamConfigured(int, @NonNull android.view.Surface, @IntRange(from=1) int, @IntRange(from=1) int, int);
  }
  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCameraConfig implements android.os.Parcelable {
  public final class VirtualCameraConfig implements android.os.Parcelable {
    method public int describeContents();
    method public int getLensFacing();
    method @NonNull public String getName();
@@ -3602,7 +3602,7 @@ package android.companion.virtual.camera {
    field public static final int SENSOR_ORIENTATION_90 = 90; // 0x5a
  }
  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public static final class VirtualCameraConfig.Builder {
  public static final class VirtualCameraConfig.Builder {
    ctor public VirtualCameraConfig.Builder(@NonNull String);
    method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder addStreamConfig(@IntRange(from=1) int, @IntRange(from=1) int, int, @IntRange(from=1) int);
    method @NonNull public android.companion.virtual.camera.VirtualCameraConfig build();
@@ -3611,7 +3611,7 @@ package android.companion.virtual.camera {
    method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setVirtualCameraCallback(@NonNull java.util.concurrent.Executor, @NonNull android.companion.virtual.camera.VirtualCameraCallback);
  }
  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCameraStreamConfig implements android.os.Parcelable {
  public final class VirtualCameraStreamConfig implements android.os.Parcelable {
    method public int describeContents();
    method public int getFormat();
    method @IntRange(from=1) public int getHeight();
+1 −1
Original line number Diff line number Diff line
@@ -942,7 +942,7 @@ package android.companion.virtual {

package android.companion.virtual.camera {

  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCamera implements java.io.Closeable {
  public final class VirtualCamera implements java.io.Closeable {
    method @NonNull public String getId();
  }

+11 −16
Original line number Diff line number Diff line
@@ -37,8 +37,8 @@ import android.companion.virtual.audio.VirtualAudioDevice;
import android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback;
import android.companion.virtual.camera.VirtualCamera;
import android.companion.virtual.camera.VirtualCameraConfig;
import android.companion.virtual.flags.Flags;
import android.companion.virtual.sensor.VirtualSensor;
import android.companion.virtualdevice.flags.Flags;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -624,7 +624,7 @@ public final class VirtualDeviceManager {
         * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_TRUSTED
         * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        public void goToSleep() {
            mVirtualDeviceInternal.goToSleep();
        }
@@ -642,7 +642,7 @@ public final class VirtualDeviceManager {
         * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_TRUSTED
         * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        public void wakeUp() {
            mVirtualDeviceInternal.wakeUp();
        }
@@ -838,7 +838,7 @@ public final class VirtualDeviceManager {
         * @see #removeActivityPolicyExemption(ActivityPolicyExemption)
         * @see #setDevicePolicy
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
        public void addActivityPolicyExemption(@NonNull ActivityPolicyExemption exemption) {
            mVirtualDeviceInternal.addActivityPolicyExemption(Objects.requireNonNull(exemption));
        }
@@ -853,7 +853,7 @@ public final class VirtualDeviceManager {
         * @see #addActivityPolicyExemption(ActivityPolicyExemption)
         * @see #setDevicePolicy
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
        public void removeActivityPolicyExemption(@NonNull ActivityPolicyExemption exemption) {
            mVirtualDeviceInternal.removeActivityPolicyExemption(Objects.requireNonNull(exemption));
        }
@@ -875,7 +875,7 @@ public final class VirtualDeviceManager {
         * @see VirtualDeviceParams#POLICY_TYPE_RECENTS
         * @see VirtualDeviceParams#POLICY_TYPE_ACTIVITY
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
        public void setDevicePolicy(
                @VirtualDeviceParams.DynamicDisplayPolicyType int policyType,
                @VirtualDeviceParams.DevicePolicy int devicePolicy,
@@ -1037,10 +1037,10 @@ public final class VirtualDeviceManager {
         * @see android.view.InputDevice#SOURCE_ROTARY_ENCODER
         */
        @NonNull
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_VIRTUAL_ROTARY)
        @FlaggedApi(Flags.FLAG_VIRTUAL_ROTARY)
        public VirtualRotaryEncoder createVirtualRotaryEncoder(
                @NonNull VirtualRotaryEncoderConfig config) {
            if (!android.companion.virtualdevice.flags.Flags.virtualRotary()) {
            if (!Flags.virtualRotary()) {
                throw new UnsupportedOperationException("Virtual rotary support not enabled");
            }
            return mVirtualDeviceInternal.createVirtualRotaryEncoder(config);
@@ -1084,12 +1084,7 @@ public final class VirtualDeviceManager {
         * @see VirtualDeviceParams#POLICY_TYPE_CAMERA
         */
        @NonNull
        @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
        public VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) {
            if (!Flags.virtualCamera()) {
                throw new UnsupportedOperationException(
                        "Flag is not enabled: %s".formatted(Flags.FLAG_VIRTUAL_CAMERA));
            }
            return mVirtualDeviceInternal.createVirtualCamera(Objects.requireNonNull(config));
        }

@@ -1252,7 +1247,7 @@ public final class VirtualDeviceManager {
         * @see VirtualDeviceParams#POLICY_TYPE_ACTIVITY
         * @see VirtualDevice#addActivityPolicyExemption(ActivityPolicyExemption)
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
        default void onActivityLaunchBlocked(int displayId, @NonNull ComponentName componentName,
                @NonNull UserHandle user, @Nullable IntentSender intentSender) {}

@@ -1268,7 +1263,7 @@ public final class VirtualDeviceManager {
         * @see Display#FLAG_SECURE
         * @see WindowManager.LayoutParams#FLAG_SECURE
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
        default void onSecureWindowShown(int displayId, @NonNull ComponentName componentName,
                @NonNull UserHandle user) {}

@@ -1284,7 +1279,7 @@ public final class VirtualDeviceManager {
         * @see Display#FLAG_SECURE
         * @see WindowManager.LayoutParams#FLAG_SECURE
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
        default void onSecureWindowHidden(int displayId) {}
    }

+9 −15
Original line number Diff line number Diff line
@@ -29,12 +29,12 @@ import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.companion.virtual.flags.Flags;
import android.companion.virtual.sensor.IVirtualSensorCallback;
import android.companion.virtual.sensor.VirtualSensor;
import android.companion.virtual.sensor.VirtualSensorCallback;
import android.companion.virtual.sensor.VirtualSensorConfig;
import android.companion.virtual.sensor.VirtualSensorDirectChannelCallback;
import android.companion.virtualdevice.flags.Flags;
import android.content.ComponentName;
import android.content.Context;
import android.hardware.display.VirtualDisplayConfig;
@@ -279,7 +279,6 @@ public final class VirtualDeviceParams implements Parcelable {
     *
     * @see Context#getDeviceId
     */
    @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
    public static final int POLICY_TYPE_CAMERA = 5;

    /**
@@ -296,7 +295,7 @@ public final class VirtualDeviceParams implements Parcelable {
     * </ul>
     */
    // TODO(b/333443509): Link to POLICY_TYPE_ACTIVITY
    @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
    @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
    public static final int POLICY_TYPE_BLOCKED_ACTIVITY = 6;

    /**
@@ -310,8 +309,7 @@ public final class VirtualDeviceParams implements Parcelable {
     *
     * @see Context#DEVICE_ID_DEFAULT
     */
    @FlaggedApi(android.companion.virtualdevice.flags.Flags
            .FLAG_DEFAULT_DEVICE_CAMERA_ACCESS_POLICY)
    @FlaggedApi(Flags.FLAG_DEFAULT_DEVICE_CAMERA_ACCESS_POLICY)
    public static final int POLICY_TYPE_DEFAULT_DEVICE_CAMERA_ACCESS = 7;

    private final int mLockState;
@@ -407,7 +405,7 @@ public final class VirtualDeviceParams implements Parcelable {
     *
     * @see Builder#setDimDuration(Duration)
     */
    @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
    @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
    public @NonNull Duration getDimDuration() {
        return Duration.ofMillis(mDimDuration);
    }
@@ -417,7 +415,7 @@ public final class VirtualDeviceParams implements Parcelable {
     *
     * @see Builder#setDimDuration(Duration)
     */
    @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
    @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
    public @NonNull Duration getScreenOffTimeout() {
        return Duration.ofMillis(mScreenOffTimeout);
    }
@@ -876,7 +874,7 @@ public final class VirtualDeviceParams implements Parcelable {
         * @see android.hardware.display.DisplayManager#VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR
         * @see #setScreenOffTimeout
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @NonNull
        public Builder setDimDuration(@NonNull Duration dimDuration) {
            if (Objects.requireNonNull(dimDuration).compareTo(Duration.ZERO) < 0) {
@@ -901,7 +899,7 @@ public final class VirtualDeviceParams implements Parcelable {
         * @see #setDimDuration
         * @see VirtualDeviceManager.VirtualDevice#goToSleep()
         */
        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @NonNull
        public Builder setScreenOffTimeout(@NonNull Duration screenOffTimeout) {
            if (Objects.requireNonNull(screenOffTimeout).compareTo(Duration.ZERO) < 0) {
@@ -1311,15 +1309,11 @@ public final class VirtualDeviceParams implements Parcelable {
                mScreenOffTimeout = INFINITE_TIMEOUT;
            }

            if (!Flags.virtualCamera()) {
                mDevicePolicies.delete(POLICY_TYPE_CAMERA);
            }

            if (!android.companion.virtualdevice.flags.Flags.defaultDeviceCameraAccessPolicy()) {
            if (!Flags.defaultDeviceCameraAccessPolicy()) {
                mDevicePolicies.delete(POLICY_TYPE_DEFAULT_DEVICE_CAMERA_ACCESS);
            }

            if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
            if (!Flags.activityControlApi()) {
                mDevicePolicies.delete(POLICY_TYPE_BLOCKED_ACTIVITY);
            }

+0 −3
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@

package android.companion.virtual.camera;

import android.annotation.FlaggedApi;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.VirtualDeviceManager;
import android.companion.virtual.VirtualDeviceParams;
import android.companion.virtual.flags.Flags;
import android.hardware.camera2.CameraDevice;
import android.os.RemoteException;

@@ -51,7 +49,6 @@ import java.util.concurrent.Executor;
 * @hide
 */
@SystemApi
@FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
public final class VirtualCamera implements Closeable {

    private final IVirtualDevice mVirtualDevice;
Loading