diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java index 4d6d52a2..2471f420 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java @@ -260,9 +260,16 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv if (mLocker != null && mLocker.isLocking()) { mLocker.onCapture(result); } + Integer aeMode = result.get(CaptureResult.CONTROL_AE_MODE); Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE); + Integer afState = result.get(CaptureResult.CONTROL_AF_STATE); + Boolean aeLock = result.get(CaptureResult.CONTROL_AE_LOCK); Integer aeTriggerState = result.get(CaptureResult.CONTROL_AE_PRECAPTURE_TRIGGER); - LOG.v("metering:", "aeState:", aeState, "aeTriggerState:", aeTriggerState); + Integer afTriggerState = result.get(CaptureResult.CONTROL_AF_TRIGGER); + LOG.v("metering:", + "aeMode:", aeMode, "aeLock:", aeLock, + "aeState:", aeState, "aeTriggerState:", aeTriggerState, + "afState:", afState, "afTriggerState:", afTriggerState); } }; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoExposure.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoExposure.java index c0b6bae5..749f84c3 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoExposure.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoExposure.java @@ -14,7 +14,7 @@ import com.otaliastudios.cameraview.CameraLogger; public class AutoExposure extends Parameter { private static final String TAG = AutoExposure.class.getSimpleName(); - private static final CameraLogger LOG = CameraLogger.create(TAG); + private static final CameraLogger LOG = CameraLogger.create(TAG + "Locking"); public AutoExposure(@NonNull LockingChangeCallback callback) { super(callback); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoFocus.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoFocus.java index 1e4bda45..5390b0d6 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoFocus.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoFocus.java @@ -14,7 +14,7 @@ import com.otaliastudios.cameraview.CameraLogger; public class AutoFocus extends Parameter { private static final String TAG = AutoFocus.class.getSimpleName(); - private static final CameraLogger LOG = CameraLogger.create(TAG); + private static final CameraLogger LOG = CameraLogger.create(TAG + "Locking"); public AutoFocus(@NonNull LockingChangeCallback callback) { super(callback); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoWhiteBalance.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoWhiteBalance.java index 8d4e5e85..b7bbf175 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoWhiteBalance.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoWhiteBalance.java @@ -14,7 +14,7 @@ import com.otaliastudios.cameraview.CameraLogger; public class AutoWhiteBalance extends Parameter { private static final String TAG = AutoWhiteBalance.class.getSimpleName(); - private static final CameraLogger LOG = CameraLogger.create(TAG); + private static final CameraLogger LOG = CameraLogger.create(TAG + "Locking"); public AutoWhiteBalance(@NonNull LockingChangeCallback callback) { super(callback); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoExposure.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoExposure.java index 2d40faff..878fa9e3 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoExposure.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoExposure.java @@ -18,7 +18,7 @@ import java.util.List; public class AutoExposure extends Parameter { private static final String TAG = AutoExposure.class.getSimpleName(); - private static final CameraLogger LOG = CameraLogger.create(TAG); + private static final CameraLogger LOG = CameraLogger.create(TAG + "Metering"); public AutoExposure(@NonNull MeteringChangeCallback callback) { super(callback); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoFocus.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoFocus.java index 739e7722..e646f720 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoFocus.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoFocus.java @@ -18,7 +18,7 @@ import java.util.List; public class AutoFocus extends Parameter { private static final String TAG = AutoFocus.class.getSimpleName(); - private static final CameraLogger LOG = CameraLogger.create(TAG); + private static final CameraLogger LOG = CameraLogger.create(TAG + "Metering"); public AutoFocus(@NonNull MeteringChangeCallback callback) { super(callback); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoWhiteBalance.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoWhiteBalance.java index 75428615..5c253f35 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoWhiteBalance.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoWhiteBalance.java @@ -18,7 +18,7 @@ import java.util.List; public class AutoWhiteBalance extends Parameter { private static final String TAG = AutoWhiteBalance.class.getSimpleName(); - private static final CameraLogger LOG = CameraLogger.create(TAG); + private static final CameraLogger LOG = CameraLogger.create(TAG + "Metering"); public AutoWhiteBalance(@NonNull MeteringChangeCallback callback) { super(callback); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot2PictureRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot2PictureRecorder.java index fcedc7ca..31753397 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot2PictureRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot2PictureRecorder.java @@ -155,9 +155,12 @@ public class Snapshot2PictureRecorder extends SnapshotGlPictureRecorder implemen // Revert our changes. LOG.i("dispatchResult:", "Reverting the capture intent changes."); try { - // See Camera2Engine.setFlash(). It's better to change these one by one. + // See Camera2Engine.setFlash() comments: turning TORCH off has bugs and we must do + // as follows. + mBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON); + mBuilder.set(CaptureRequest.FLASH_MODE, CaptureResult.FLASH_MODE_OFF); + mSession.capture(mBuilder.build(), null, null); mBuilder.set(CaptureRequest.CONTROL_AE_MODE, mOriginalAeMode); - mSession.capture(mBuilder.build(), mCallback, null); mBuilder.set(CaptureRequest.FLASH_MODE, mOriginalFlashMode); mSession.setRepeatingRequest(mBuilder.build(), mCallback, null); } catch (CameraAccessException ignore) {} diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java index 10754fa3..9afc1f92 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java @@ -196,7 +196,7 @@ public class GlCameraPreview extends FilterCameraPreview