Merge "Enable StreamSharing feature" into androidx-main
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/internal/CameraUseCaseAdapter.java b/camera/camera-core/src/main/java/androidx/camera/core/internal/CameraUseCaseAdapter.java
index ee71415..f6b3836 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/internal/CameraUseCaseAdapter.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/internal/CameraUseCaseAdapter.java
@@ -90,7 +90,6 @@
     private final UseCaseConfigFactory mUseCaseConfigFactory;
 
     private static final String TAG = "CameraUseCaseAdapter";
-    private boolean mStreamSharingEnabled = false;
 
     private final CameraId mId;
 
@@ -279,7 +278,7 @@
                 //  resolution. Throw exception here if (applyStreamSharing == false), both video
                 //  and preview are used and preview resolution is lower than user configuration.
             } catch (IllegalArgumentException exception) {
-                if (!applyStreamSharing && mStreamSharingEnabled && hasNoExtension()) {
+                if (!applyStreamSharing && hasNoExtension()) {
                     // Try again and see if StreamSharing resolves the issue.
                     updateUseCases(appUseCases, /*applyStreamSharing*/true);
                     return;
@@ -870,9 +869,4 @@
     private ImageCapture createExtraImageCapture() {
         return new ImageCapture.Builder().setTargetName("ImageCapture-Extra").build();
     }
-
-    @VisibleForTesting
-    void setStreamSharingEnabled(boolean streamSharingEnabled) {
-        mStreamSharingEnabled = streamSharingEnabled;
-    }
 }
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/internal/CameraUseCaseAdapterTest.kt b/camera/camera-core/src/test/java/androidx/camera/core/internal/CameraUseCaseAdapterTest.kt
index d8c9c75..898c3b7 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/internal/CameraUseCaseAdapterTest.kt
+++ b/camera/camera-core/src/test/java/androidx/camera/core/internal/CameraUseCaseAdapterTest.kt
@@ -122,7 +122,6 @@
     @Test
     fun attachAndDetachUseCases_cameraUseCasesAttachedAndDetached() {
         // Arrange: bind UseCases that requires sharing.
-        adapter.setStreamSharingEnabled(true)
         adapter.addUseCases(setOf(preview, video, image))
         val streamSharing =
             adapter.cameraUseCases.filterIsInstance(StreamSharing::class.java).single()
@@ -138,8 +137,6 @@
 
     @Test(expected = CameraException::class)
     fun addStreamSharing_throwsException() {
-        // Arrange.
-        adapter.setStreamSharingEnabled(true)
         val streamSharing = StreamSharing(fakeCamera, setOf(preview, video), useCaseConfigFactory)
         // Act: add use cases that can only be supported with StreamSharing
         adapter.addUseCases(setOf(streamSharing, video, image))
@@ -147,8 +144,6 @@
 
     @Test
     fun invalidUseCaseCombo_streamSharingOn() {
-        // Arrange.
-        adapter.setStreamSharingEnabled(true)
         // Act: add use cases that can only be supported with StreamSharing
         adapter.addUseCases(setOf(preview, video, image))
         // Assert: StreamSharing is connected to camera.
@@ -168,8 +163,6 @@
 
     @Test
     fun validUseCaseCombo_streamSharingOff() {
-        // Arrange.
-        adapter.setStreamSharingEnabled(true)
         // Act: add use cases that do not need StreamSharing
         adapter.addUseCases(setOf(preview, video))
         // Assert: the app UseCase are connected to camera.
@@ -184,7 +177,6 @@
     @Test(expected = CameraException::class)
     fun invalidUseCaseComboCantBeFixedByStreamSharing_throwsException() {
         // Arrange: create a camera that only support one JPEG stream.
-        adapter.setStreamSharingEnabled(true)
         fakeCameraDeviceSurfaceManager.setValidSurfaceCombos(setOf(listOf(JPEG)))
         // Act: add PRIV and JPEG streams.
         adapter.addUseCases(setOf(preview, image))
@@ -192,8 +184,6 @@
 
     @Test
     fun addChildThatRequiresStreamSharing_streamSharingOn() {
-        // Arrange.
-        adapter.setStreamSharingEnabled(true)
         // Act: add UseCase that do not need StreamSharing
         adapter.addUseCases(setOf(video, image))
         // Assert.
@@ -223,8 +213,6 @@
 
     @Test
     fun removeChildThatRequiresStreamSharing_streamSharingOff() {
-        // Arrange.
-        adapter.setStreamSharingEnabled(true)
         // Act: add UseCases that need StreamSharing.
         adapter.addUseCases(setOf(preview, video, image))
         // Assert: StreamSharing exists and bound.
@@ -257,15 +245,12 @@
     fun extensionEnabled_streamSharingOffAndThrowsException() {
         // Arrange: enable extensions
         adapter.setExtendedConfig(createCoexistingRequiredRuleCameraConfig())
-        adapter.setStreamSharingEnabled(true)
         // Act: add UseCases that require StreamSharing
         adapter.addUseCases(setOf(preview, video, image))
     }
 
     @Test
     fun addAdditionalUseCase_streamSharingReused() {
-        // Arrange.
-        adapter.setStreamSharingEnabled(true)
         // Act: add UseCases that require StreamSharing
         adapter.addUseCases(setOf(preview, video, image))
         // Assert: StreamSharing is used.