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

Commit b7fb257b authored by Ravneet Dhanjal's avatar Ravneet Dhanjal
Browse files

Fix CTS extension errors

- Add null check for capture and repeating surface targets before checking whether they are contained in the request target to prevent incorrect validation of the capture request targets
- Prevent checking validity of the postview surface if one is not requested to fix incorrect 'postview feature is not available' error

Test: CTS test
Bug: 264321351
Change-Id: Ia8a4a2d12d3ec6748c3bf2004159306127985dd8
parent 8eebb5af
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
        }

        Surface postviewSurface = null;
        if (burstCaptureSurface != null) {
        if (burstCaptureSurface != null && config.getPostviewOutputConfiguration() != null) {
            CameraExtensionUtils.SurfaceInfo burstCaptureSurfaceInfo =
                    CameraExtensionUtils.querySurface(burstCaptureSurface);
            Size burstCaptureSurfaceSize =
@@ -193,8 +193,7 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
            postviewSurface = CameraExtensionUtils.getPostviewSurface(
                        config.getPostviewOutputConfiguration(), supportedPostviewSizes,
                        burstCaptureSurfaceInfo.mFormat);

            if ((config.getPostviewOutputConfiguration() != null) && (postviewSurface == null)) {
            if (postviewSurface == null) {
                throw new IllegalArgumentException("Unsupported output surface for postview!");
            }
        }
@@ -456,12 +455,18 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
    }

    private void validateCaptureRequestTargets(@NonNull CaptureRequest request) {
        if ((request.getTargets().size() == 1) &&
                (!request.containsTarget(mClientRepeatingRequestSurface) ||
                !request.containsTarget(mClientCaptureSurface))) {
        if (request.getTargets().size() == 1) {
            boolean containsCaptureTarget =
                    mClientCaptureSurface != null && request.containsTarget(mClientCaptureSurface);
            boolean containsRepeatingTarget =
                    mClientRepeatingRequestSurface != null &&
                    request.containsTarget(mClientRepeatingRequestSurface);

            if (!containsCaptureTarget && !containsRepeatingTarget) {
                throw new IllegalArgumentException("Target output combination requested is " +
                        "not supported!");
            }
        }

        if ((request.getTargets().size() == 2) &&
                (!request.getTargets().containsAll(Arrays.asList(mClientCaptureSurface,
+13 −7
Original line number Diff line number Diff line
@@ -200,7 +200,7 @@ public final class CameraExtensionSessionImpl extends CameraExtensionSession {
        }

        Surface postviewSurface = null;
        if (burstCaptureSurface != null) {
        if (burstCaptureSurface != null && config.getPostviewOutputConfiguration() != null) {
            CameraExtensionUtils.SurfaceInfo burstCaptureSurfaceInfo =
                    CameraExtensionUtils.querySurface(burstCaptureSurface);
            Size burstCaptureSurfaceSize =
@@ -218,7 +218,7 @@ public final class CameraExtensionSessionImpl extends CameraExtensionSession {
                        config.getPostviewOutputConfiguration(), supportedPostviewSizes,
                        burstCaptureSurfaceInfo.mFormat);

            if ((config.getPostviewOutputConfiguration() != null) && (postviewSurface == null)) {
            if (postviewSurface == null) {
                throw new IllegalArgumentException("Unsupported output surface for postview!");
            }
        }
@@ -717,12 +717,18 @@ public final class CameraExtensionSessionImpl extends CameraExtensionSession {
    }

    private void validateCaptureRequestTargets(@NonNull CaptureRequest request) {
        if ((request.getTargets().size() == 1) &&
                (!request.containsTarget(mClientRepeatingRequestSurface) ||
                !request.containsTarget(mClientCaptureSurface))) {
        if (request.getTargets().size() == 1) {
            boolean containsCaptureTarget =
                    mClientCaptureSurface != null && request.containsTarget(mClientCaptureSurface);
            boolean containsRepeatingTarget =
                    mClientRepeatingRequestSurface != null &&
                    request.containsTarget(mClientRepeatingRequestSurface);

            if (!containsCaptureTarget && !containsRepeatingTarget) {
                throw new IllegalArgumentException("Target output combination requested is " +
                        "not supported!");
            }
        }

        if ((request.getTargets().size() == 2) &&
                (!request.getTargets().containsAll(Arrays.asList(mClientCaptureSurface,