Loading core/java/android/companion/virtual/IVirtualDevice.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -246,4 +246,10 @@ interface IVirtualDevice { */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void unregisterVirtualCamera(in VirtualCameraConfig camera); /** * Returns the id of the virtual camera with given config. */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") int getVirtualCameraId(in VirtualCameraConfig camera); } core/java/android/companion/virtual/VirtualDeviceInternal.java +8 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.companion.virtual; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.UserIdInt; import android.app.PendingIntent; import android.companion.virtual.audio.VirtualAudioDevice; Loading Loading @@ -340,12 +341,17 @@ public class VirtualDeviceInternal { return mVirtualAudioDevice; } @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) @NonNull VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) { try { mVirtualDevice.registerVirtualCamera(config); return new VirtualCamera(mVirtualDevice, config); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @NonNull void setShowPointerIcon(boolean showPointerIcon) { try { mVirtualDevice.setShowPointerIcon(showPointerIcon); Loading core/java/android/companion/virtual/camera/VirtualCamera.java +15 −8 Original line number Diff line number Diff line Loading @@ -66,15 +66,8 @@ public final class VirtualCamera implements Closeable { @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public VirtualCamera( @NonNull IVirtualDevice virtualDevice, @NonNull VirtualCameraConfig config) { mVirtualDevice = virtualDevice; mVirtualDevice = Objects.requireNonNull(virtualDevice); mConfig = Objects.requireNonNull(config); Objects.requireNonNull(virtualDevice); // TODO(b/310857519): Avoid registration inside constructor. try { mVirtualDevice.registerVirtualCamera(config); } catch (RemoteException e) { e.rethrowFromSystemServer(); } } /** Returns the configuration of this virtual camera instance. */ Loading @@ -83,6 +76,20 @@ public final class VirtualCamera implements Closeable { return mConfig; } /** * Returns the id of this virtual camera instance. * @hide */ @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) @NonNull public String getId() { try { return Integer.toString(mVirtualDevice.getVirtualCameraId(mConfig)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void close() { Loading services/companion/java/com/android/server/companion/virtual/TEST_MAPPING +10 −0 Original line number Diff line number Diff line Loading @@ -55,5 +55,15 @@ } ] } ], "postsubmit": [ { "name": "CtsVirtualDevicesCameraTestCases", "options": [ { "exclude-annotation": "androidx.test.filters.FlakyTest" } ] } ] } services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +14 −2 Original line number Diff line number Diff line Loading @@ -939,7 +939,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub if (mVirtualCameraController == null) { throw new UnsupportedOperationException("Virtual camera controller is not available"); } mVirtualCameraController.registerCamera(Objects.requireNonNull(cameraConfig)); mVirtualCameraController.registerCamera(cameraConfig); } @Override // Binder call Loading @@ -951,7 +951,19 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub if (mVirtualCameraController == null) { throw new UnsupportedOperationException("Virtual camera controller is not available"); } mVirtualCameraController.unregisterCamera(Objects.requireNonNull(cameraConfig)); mVirtualCameraController.unregisterCamera(cameraConfig); } @Override // Binder call @EnforcePermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public int getVirtualCameraId(@NonNull VirtualCameraConfig cameraConfig) throws RemoteException { super.getVirtualCameraId_enforcePermission(); Objects.requireNonNull(cameraConfig); if (mVirtualCameraController == null) { throw new UnsupportedOperationException("Virtual camera controller is not available"); } return mVirtualCameraController.getCameraId(cameraConfig); } @Override Loading Loading
core/java/android/companion/virtual/IVirtualDevice.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -246,4 +246,10 @@ interface IVirtualDevice { */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void unregisterVirtualCamera(in VirtualCameraConfig camera); /** * Returns the id of the virtual camera with given config. */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") int getVirtualCameraId(in VirtualCameraConfig camera); }
core/java/android/companion/virtual/VirtualDeviceInternal.java +8 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.companion.virtual; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.UserIdInt; import android.app.PendingIntent; import android.companion.virtual.audio.VirtualAudioDevice; Loading Loading @@ -340,12 +341,17 @@ public class VirtualDeviceInternal { return mVirtualAudioDevice; } @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) @NonNull VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) { try { mVirtualDevice.registerVirtualCamera(config); return new VirtualCamera(mVirtualDevice, config); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @NonNull void setShowPointerIcon(boolean showPointerIcon) { try { mVirtualDevice.setShowPointerIcon(showPointerIcon); Loading
core/java/android/companion/virtual/camera/VirtualCamera.java +15 −8 Original line number Diff line number Diff line Loading @@ -66,15 +66,8 @@ public final class VirtualCamera implements Closeable { @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public VirtualCamera( @NonNull IVirtualDevice virtualDevice, @NonNull VirtualCameraConfig config) { mVirtualDevice = virtualDevice; mVirtualDevice = Objects.requireNonNull(virtualDevice); mConfig = Objects.requireNonNull(config); Objects.requireNonNull(virtualDevice); // TODO(b/310857519): Avoid registration inside constructor. try { mVirtualDevice.registerVirtualCamera(config); } catch (RemoteException e) { e.rethrowFromSystemServer(); } } /** Returns the configuration of this virtual camera instance. */ Loading @@ -83,6 +76,20 @@ public final class VirtualCamera implements Closeable { return mConfig; } /** * Returns the id of this virtual camera instance. * @hide */ @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) @NonNull public String getId() { try { return Integer.toString(mVirtualDevice.getVirtualCameraId(mConfig)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void close() { Loading
services/companion/java/com/android/server/companion/virtual/TEST_MAPPING +10 −0 Original line number Diff line number Diff line Loading @@ -55,5 +55,15 @@ } ] } ], "postsubmit": [ { "name": "CtsVirtualDevicesCameraTestCases", "options": [ { "exclude-annotation": "androidx.test.filters.FlakyTest" } ] } ] }
services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +14 −2 Original line number Diff line number Diff line Loading @@ -939,7 +939,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub if (mVirtualCameraController == null) { throw new UnsupportedOperationException("Virtual camera controller is not available"); } mVirtualCameraController.registerCamera(Objects.requireNonNull(cameraConfig)); mVirtualCameraController.registerCamera(cameraConfig); } @Override // Binder call Loading @@ -951,7 +951,19 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub if (mVirtualCameraController == null) { throw new UnsupportedOperationException("Virtual camera controller is not available"); } mVirtualCameraController.unregisterCamera(Objects.requireNonNull(cameraConfig)); mVirtualCameraController.unregisterCamera(cameraConfig); } @Override // Binder call @EnforcePermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public int getVirtualCameraId(@NonNull VirtualCameraConfig cameraConfig) throws RemoteException { super.getVirtualCameraId_enforcePermission(); Objects.requireNonNull(cameraConfig); if (mVirtualCameraController == null) { throw new UnsupportedOperationException("Virtual camera controller is not available"); } return mVirtualCameraController.getCameraId(cameraConfig); } @Override Loading