Fix ImageCaptureTest failures in the extensions module
1. Modify the extensions test-lib to only run for devices whcih API level are 26 or above since old devices do not support extensions
2. Update @RequiredApi annotation of BasicExtenderSessionProcessor, StillCaptureProcessor and PreviewProcessor from 26 to 21 because actually no implementation details need the device to be API level 26 or above.
Bug: 260282407
Test: ./gradlew camera:camera-extensions:connectedAndroidTest
Change-Id: I0169ef343e86c42f4c5d1ae95ff5c229c97fac9a
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
index f419244..145105e 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
@@ -20,7 +20,6 @@
import android.graphics.ImageFormat;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.params.StreamConfigurationMap;
-import android.os.Build;
import android.util.Pair;
import android.util.Range;
import android.util.Size;
@@ -289,11 +288,7 @@
@Override
public SessionProcessor createSessionProcessor(@NonNull Context context) {
Preconditions.checkNotNull(mCameraInfo, "VendorExtender#init() must be called first");
- if (Build.VERSION.SDK_INT >= 26) {
- return new BasicExtenderSessionProcessor(
- mPreviewExtenderImpl, mImageCaptureExtenderImpl, context);
- } else {
- throw new IllegalArgumentException("SessionProcessor is not supported");
- }
+ return new BasicExtenderSessionProcessor(mPreviewExtenderImpl, mImageCaptureExtenderImpl,
+ context);
}
}
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessor.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessor.java
index 74de26b..5049106 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessor.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessor.java
@@ -62,7 +62,7 @@
* A {@link SessionProcessor} based on OEMs' basic extender implementation.
*/
@OptIn(markerClass = ExperimentalCamera2Interop.class)
-@RequiresApi(26) // TODO(b/200306659): Remove and replace with annotation on package-info.java
+@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
public class BasicExtenderSessionProcessor extends SessionProcessorBase {
private static final String TAG = "BasicSessionProcessor";
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/PreviewProcessor.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/PreviewProcessor.java
index 0f34acb..1e8acf7 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/PreviewProcessor.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/PreviewProcessor.java
@@ -39,7 +39,7 @@
*
* <p>Please note that output preview surface must be closed AFTER this processor is closed.
*/
-@RequiresApi(26)
+@RequiresApi(21)
class PreviewProcessor {
private static final String TAG = "PreviewProcessor";
@NonNull
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/StillCaptureProcessor.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/StillCaptureProcessor.java
index d3f47fa..b1d702f 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/StillCaptureProcessor.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/sessionprocessor/StillCaptureProcessor.java
@@ -61,7 +61,7 @@
* Please note that the output JPEG surface should be closed AFTER this processor is closed().
* </pre>
*/
-@RequiresApi(26)
+@RequiresApi(21)
class StillCaptureProcessor {
private static final String TAG = "StillCaptureProcessor";
private static final int MAX_IMAGES = 2;
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java
index b33eb0f..96e9f73 100755
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java
@@ -67,8 +67,8 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Requires API 23 for ImageWriter
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return false;
}
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoPreviewExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoPreviewExtenderImpl.java
index 4c2e2a1..18c9c9d 100755
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoPreviewExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/AutoPreviewExtenderImpl.java
@@ -53,7 +53,10 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Implement the logic to check whether the extension function is supported or not.
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return false;
+ }
if (cameraCharacteristics == null) {
return false;
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java
index 39e2fb8..4257f2c 100755
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java
@@ -72,8 +72,8 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Requires API 23 for ImageWriter
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return false;
}
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyPreviewExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyPreviewExtenderImpl.java
index ba8c013..1665c36 100755
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyPreviewExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BeautyPreviewExtenderImpl.java
@@ -59,7 +59,10 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Implement the logic to check whether the extension function is supported or not.
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return false;
+ }
if (cameraCharacteristics == null) {
return false;
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java
index 0eedc2d..fdb7e01 100644
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java
@@ -67,8 +67,8 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Requires API 23 for ImageWriter
- if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.M) {
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return false;
}
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehPreviewExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehPreviewExtenderImpl.java
index 60d6246..99fb8d9 100644
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehPreviewExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/BokehPreviewExtenderImpl.java
@@ -59,7 +59,10 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Implement the logic to check whether the extension function is supported or not.
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return false;
+ }
if (cameraCharacteristics == null) {
return false;
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrImageCaptureExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrImageCaptureExtenderImpl.java
index a5cdf2a..6a16dff 100644
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrImageCaptureExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrImageCaptureExtenderImpl.java
@@ -74,8 +74,8 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Requires API 23 for ImageWriter
- if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.M) {
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return false;
}
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrPreviewExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrPreviewExtenderImpl.java
index 09c2ca37..defe8e9 100644
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrPreviewExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/HdrPreviewExtenderImpl.java
@@ -20,6 +20,7 @@
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.TotalCaptureResult;
import android.media.Image;
+import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.util.Pair;
@@ -63,8 +64,8 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Implement the logic to check whether the extension function is supported or not.
- return true;
+ // Return false to skip tests since old devices do not support extensions.
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O;
}
@NonNull
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java
index 4febfb4..98c171e 100755
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java
@@ -67,8 +67,8 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Requires API 23 for ImageWriter
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return false;
}
diff --git a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightPreviewExtenderImpl.java b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightPreviewExtenderImpl.java
index f9b95c0..46512ee 100755
--- a/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightPreviewExtenderImpl.java
+++ b/camera/camera-testlib-extensions/src/main/java/androidx/camera/extensions/impl/NightPreviewExtenderImpl.java
@@ -53,7 +53,10 @@
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@Nullable CameraCharacteristics cameraCharacteristics) {
- // Implement the logic to check whether the extension function is supported or not.
+ // Return false to skip tests since old devices do not support extensions.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return false;
+ }
if (cameraCharacteristics == null) {
return false;