Loading core/api/system-current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -3357,7 +3357,7 @@ package android.companion.virtual.camera { @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCameraConfig implements android.os.Parcelable { method public int describeContents(); method @StringRes public int getDisplayNameStringRes(); method @NonNull public String getName(); method @NonNull public java.util.Set<android.companion.virtual.camera.VirtualCameraStreamConfig> getStreamConfigs(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.companion.virtual.camera.VirtualCameraConfig> CREATOR; Loading @@ -3367,7 +3367,7 @@ package android.companion.virtual.camera { ctor public VirtualCameraConfig.Builder(); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder addStreamConfig(int, int, int); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig build(); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setDisplayNameStringRes(@StringRes int); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setName(@NonNull String); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setVirtualCameraCallback(@NonNull java.util.concurrent.Executor, @NonNull android.companion.virtual.camera.VirtualCameraCallback); } core/java/android/companion/virtual/camera/VirtualCameraConfig.java +15 −25 Original line number Diff line number Diff line Loading @@ -20,11 +20,9 @@ import static java.util.Objects.requireNonNull; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.StringRes; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.companion.virtual.flags.Flags; import android.content.res.Resources; import android.graphics.ImageFormat; import android.os.Parcel; import android.os.Parcelable; Loading @@ -45,16 +43,16 @@ import java.util.concurrent.Executor; @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA) public final class VirtualCameraConfig implements Parcelable { private final @StringRes int mNameStringRes; private final String mName; private final Set<VirtualCameraStreamConfig> mStreamConfigurations; private final IVirtualCameraCallback mCallback; private VirtualCameraConfig( int displayNameStringRes, @NonNull String name, @NonNull Set<VirtualCameraStreamConfig> streamConfigurations, @NonNull Executor executor, @NonNull VirtualCameraCallback callback) { mNameStringRes = displayNameStringRes; mName = requireNonNull(name, "Missing name"); mStreamConfigurations = Set.copyOf(requireNonNull(streamConfigurations, "Missing stream configurations")); if (mStreamConfigurations.isEmpty()) { Loading @@ -68,7 +66,7 @@ public final class VirtualCameraConfig implements Parcelable { } private VirtualCameraConfig(@NonNull Parcel in) { mNameStringRes = in.readInt(); mName = in.readString8(); mCallback = IVirtualCameraCallback.Stub.asInterface(in.readStrongBinder()); mStreamConfigurations = Set.of( Loading @@ -84,18 +82,18 @@ public final class VirtualCameraConfig implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mNameStringRes); dest.writeString8(mName); dest.writeStrongInterface(mCallback); dest.writeParcelableArray( mStreamConfigurations.toArray(new VirtualCameraStreamConfig[0]), flags); } /** * @return The display name of this VirtualCamera * @return The name of this VirtualCamera */ @StringRes public int getDisplayNameStringRes() { return mNameStringRes; @NonNull public String getName() { return mName; } /** Loading Loading @@ -126,30 +124,22 @@ public final class VirtualCameraConfig implements Parcelable { * <li>At least one stream must be added with {@link #addStreamConfig(int, int, int)}. * <li>A callback must be set with {@link #setVirtualCameraCallback(Executor, * VirtualCameraCallback)} * <li>A user readable name can be set with {@link #setDisplayNameStringRes(int)} * <li>A camera name must be set with {@link #setName(String)} */ @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA) public static final class Builder { private @StringRes int mDisplayNameStringRes = Resources.ID_NULL; private String mName; private final ArraySet<VirtualCameraStreamConfig> mStreamConfigurations = new ArraySet<>(); private Executor mCallbackExecutor; private VirtualCameraCallback mCallback; /** * Set the visible name of this camera for the user. * * <p>Sets the resource to a string representing a user readable name for this virtual * camera. * * @throws IllegalArgumentException if an invalid resource id is passed. * Set the name of the virtual camera instance. */ @NonNull public Builder setDisplayNameStringRes(@StringRes int displayNameStringRes) { if (displayNameStringRes <= 0) { throw new IllegalArgumentException("Invalid resource passed for display name"); } mDisplayNameStringRes = displayNameStringRes; public Builder setName(@NonNull String name) { mName = requireNonNull(name, "Display name cannot be null"); return this; } Loading Loading @@ -203,7 +193,7 @@ public final class VirtualCameraConfig implements Parcelable { @NonNull public VirtualCameraConfig build() { return new VirtualCameraConfig( mDisplayNameStringRes, mStreamConfigurations, mCallbackExecutor, mCallback); mName, mStreamConfigurations, mCallbackExecutor, mCallback); } } Loading services/tests/servicestests/src/com/android/server/companion/virtual/camera/VirtualCameraControllerTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -53,11 +53,11 @@ import java.util.List; @TestableLooper.RunWithLooper(setAsMainLooper = true) public class VirtualCameraControllerTest { private static final int CAMERA_DISPLAY_NAME_RES_ID_1 = 10; private static final String CAMERA_NAME_1 = "Virtual camera 1"; private static final int CAMERA_WIDTH_1 = 100; private static final int CAMERA_HEIGHT_1 = 200; private static final int CAMERA_DISPLAY_NAME_RES_ID_2 = 11; private static final String CAMERA_NAME_2 = "Virtual camera 2"; private static final int CAMERA_WIDTH_2 = 400; private static final int CAMERA_HEIGHT_2 = 600; private static final int CAMERA_FORMAT = ImageFormat.YUV_420_888; Loading @@ -84,7 +84,7 @@ public class VirtualCameraControllerTest { @Test public void registerCamera_registersCamera() throws Exception { mVirtualCameraController.registerCamera(createVirtualCameraConfig( CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_1)); CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_NAME_1)); ArgumentCaptor<VirtualCameraConfiguration> configurationCaptor = ArgumentCaptor.forClass(VirtualCameraConfiguration.class); Loading @@ -98,7 +98,7 @@ public class VirtualCameraControllerTest { @Test public void unregisterCamera_unregistersCamera() throws Exception { VirtualCameraConfig config = createVirtualCameraConfig( CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_1); CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_NAME_1); mVirtualCameraController.registerCamera(config); mVirtualCameraController.unregisterCamera(config); Loading @@ -109,9 +109,9 @@ public class VirtualCameraControllerTest { @Test public void close_unregistersAllCameras() throws Exception { mVirtualCameraController.registerCamera(createVirtualCameraConfig( CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_1)); CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_NAME_1)); mVirtualCameraController.registerCamera(createVirtualCameraConfig( CAMERA_WIDTH_2, CAMERA_HEIGHT_2, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_2)); CAMERA_WIDTH_2, CAMERA_HEIGHT_2, CAMERA_FORMAT, CAMERA_NAME_2)); mVirtualCameraController.close(); Loading @@ -129,10 +129,10 @@ public class VirtualCameraControllerTest { } private VirtualCameraConfig createVirtualCameraConfig( int width, int height, int format, int displayNameResId) { int width, int height, int format, String displayName) { return new VirtualCameraConfig.Builder() .addStreamConfig(width, height, format) .setDisplayNameStringRes(displayNameResId) .setName(displayName) .setVirtualCameraCallback(mCallbackHandler, createNoOpCallback()) .build(); } Loading Loading
core/api/system-current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -3357,7 +3357,7 @@ package android.companion.virtual.camera { @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCameraConfig implements android.os.Parcelable { method public int describeContents(); method @StringRes public int getDisplayNameStringRes(); method @NonNull public String getName(); method @NonNull public java.util.Set<android.companion.virtual.camera.VirtualCameraStreamConfig> getStreamConfigs(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.companion.virtual.camera.VirtualCameraConfig> CREATOR; Loading @@ -3367,7 +3367,7 @@ package android.companion.virtual.camera { ctor public VirtualCameraConfig.Builder(); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder addStreamConfig(int, int, int); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig build(); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setDisplayNameStringRes(@StringRes int); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setName(@NonNull String); method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setVirtualCameraCallback(@NonNull java.util.concurrent.Executor, @NonNull android.companion.virtual.camera.VirtualCameraCallback); }
core/java/android/companion/virtual/camera/VirtualCameraConfig.java +15 −25 Original line number Diff line number Diff line Loading @@ -20,11 +20,9 @@ import static java.util.Objects.requireNonNull; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.StringRes; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.companion.virtual.flags.Flags; import android.content.res.Resources; import android.graphics.ImageFormat; import android.os.Parcel; import android.os.Parcelable; Loading @@ -45,16 +43,16 @@ import java.util.concurrent.Executor; @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA) public final class VirtualCameraConfig implements Parcelable { private final @StringRes int mNameStringRes; private final String mName; private final Set<VirtualCameraStreamConfig> mStreamConfigurations; private final IVirtualCameraCallback mCallback; private VirtualCameraConfig( int displayNameStringRes, @NonNull String name, @NonNull Set<VirtualCameraStreamConfig> streamConfigurations, @NonNull Executor executor, @NonNull VirtualCameraCallback callback) { mNameStringRes = displayNameStringRes; mName = requireNonNull(name, "Missing name"); mStreamConfigurations = Set.copyOf(requireNonNull(streamConfigurations, "Missing stream configurations")); if (mStreamConfigurations.isEmpty()) { Loading @@ -68,7 +66,7 @@ public final class VirtualCameraConfig implements Parcelable { } private VirtualCameraConfig(@NonNull Parcel in) { mNameStringRes = in.readInt(); mName = in.readString8(); mCallback = IVirtualCameraCallback.Stub.asInterface(in.readStrongBinder()); mStreamConfigurations = Set.of( Loading @@ -84,18 +82,18 @@ public final class VirtualCameraConfig implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mNameStringRes); dest.writeString8(mName); dest.writeStrongInterface(mCallback); dest.writeParcelableArray( mStreamConfigurations.toArray(new VirtualCameraStreamConfig[0]), flags); } /** * @return The display name of this VirtualCamera * @return The name of this VirtualCamera */ @StringRes public int getDisplayNameStringRes() { return mNameStringRes; @NonNull public String getName() { return mName; } /** Loading Loading @@ -126,30 +124,22 @@ public final class VirtualCameraConfig implements Parcelable { * <li>At least one stream must be added with {@link #addStreamConfig(int, int, int)}. * <li>A callback must be set with {@link #setVirtualCameraCallback(Executor, * VirtualCameraCallback)} * <li>A user readable name can be set with {@link #setDisplayNameStringRes(int)} * <li>A camera name must be set with {@link #setName(String)} */ @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA) public static final class Builder { private @StringRes int mDisplayNameStringRes = Resources.ID_NULL; private String mName; private final ArraySet<VirtualCameraStreamConfig> mStreamConfigurations = new ArraySet<>(); private Executor mCallbackExecutor; private VirtualCameraCallback mCallback; /** * Set the visible name of this camera for the user. * * <p>Sets the resource to a string representing a user readable name for this virtual * camera. * * @throws IllegalArgumentException if an invalid resource id is passed. * Set the name of the virtual camera instance. */ @NonNull public Builder setDisplayNameStringRes(@StringRes int displayNameStringRes) { if (displayNameStringRes <= 0) { throw new IllegalArgumentException("Invalid resource passed for display name"); } mDisplayNameStringRes = displayNameStringRes; public Builder setName(@NonNull String name) { mName = requireNonNull(name, "Display name cannot be null"); return this; } Loading Loading @@ -203,7 +193,7 @@ public final class VirtualCameraConfig implements Parcelable { @NonNull public VirtualCameraConfig build() { return new VirtualCameraConfig( mDisplayNameStringRes, mStreamConfigurations, mCallbackExecutor, mCallback); mName, mStreamConfigurations, mCallbackExecutor, mCallback); } } Loading
services/tests/servicestests/src/com/android/server/companion/virtual/camera/VirtualCameraControllerTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -53,11 +53,11 @@ import java.util.List; @TestableLooper.RunWithLooper(setAsMainLooper = true) public class VirtualCameraControllerTest { private static final int CAMERA_DISPLAY_NAME_RES_ID_1 = 10; private static final String CAMERA_NAME_1 = "Virtual camera 1"; private static final int CAMERA_WIDTH_1 = 100; private static final int CAMERA_HEIGHT_1 = 200; private static final int CAMERA_DISPLAY_NAME_RES_ID_2 = 11; private static final String CAMERA_NAME_2 = "Virtual camera 2"; private static final int CAMERA_WIDTH_2 = 400; private static final int CAMERA_HEIGHT_2 = 600; private static final int CAMERA_FORMAT = ImageFormat.YUV_420_888; Loading @@ -84,7 +84,7 @@ public class VirtualCameraControllerTest { @Test public void registerCamera_registersCamera() throws Exception { mVirtualCameraController.registerCamera(createVirtualCameraConfig( CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_1)); CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_NAME_1)); ArgumentCaptor<VirtualCameraConfiguration> configurationCaptor = ArgumentCaptor.forClass(VirtualCameraConfiguration.class); Loading @@ -98,7 +98,7 @@ public class VirtualCameraControllerTest { @Test public void unregisterCamera_unregistersCamera() throws Exception { VirtualCameraConfig config = createVirtualCameraConfig( CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_1); CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_NAME_1); mVirtualCameraController.registerCamera(config); mVirtualCameraController.unregisterCamera(config); Loading @@ -109,9 +109,9 @@ public class VirtualCameraControllerTest { @Test public void close_unregistersAllCameras() throws Exception { mVirtualCameraController.registerCamera(createVirtualCameraConfig( CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_1)); CAMERA_WIDTH_1, CAMERA_HEIGHT_1, CAMERA_FORMAT, CAMERA_NAME_1)); mVirtualCameraController.registerCamera(createVirtualCameraConfig( CAMERA_WIDTH_2, CAMERA_HEIGHT_2, CAMERA_FORMAT, CAMERA_DISPLAY_NAME_RES_ID_2)); CAMERA_WIDTH_2, CAMERA_HEIGHT_2, CAMERA_FORMAT, CAMERA_NAME_2)); mVirtualCameraController.close(); Loading @@ -129,10 +129,10 @@ public class VirtualCameraControllerTest { } private VirtualCameraConfig createVirtualCameraConfig( int width, int height, int format, int displayNameResId) { int width, int height, int format, String displayName) { return new VirtualCameraConfig.Builder() .addStreamConfig(width, height, format) .setDisplayNameStringRes(displayNameResId) .setName(displayName) .setVirtualCameraCallback(mCallbackHandler, createNoOpCallback()) .build(); } Loading