diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Meter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Meter.java index 1e66a564..abf08b39 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Meter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Meter.java @@ -281,10 +281,11 @@ public class Meter { if (!mAutoExposure.isMetered()) mAutoExposure.onCapture(result); if (!mAutoWhiteBalance.isMetered()) mAutoWhiteBalance.onCapture(result); if (mAutoFocus.isMetered() && mAutoExposure.isMetered() && mAutoWhiteBalance.isMetered()) { - // Use the AF success for dispatching the callback, since the public - // callback is currently related to AF. LOG.i("onCapture:", "all MeteringParameters have converged. Dispatching onMeteringEnd"); - onMeteringEnd(mAutoFocus.isSuccessful()); + boolean success = mAutoFocus.isSuccessful() + && mAutoExposure.isSuccessful() + && mAutoWhiteBalance.isSuccessful(); + onMeteringEnd(success); } else if (System.currentTimeMillis() - mMeteringStartTime >= FORCED_END_DELAY) { LOG.i("onCapture:", "FORCED_END_DELAY was reached. Some MeteringParameter is stuck. Forcing end."); onMeteringEnd(false); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/MeteringParameter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/MeteringParameter.java index 9c34bb04..2fb4a5af 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/MeteringParameter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/MeteringParameter.java @@ -33,11 +33,13 @@ public abstract class MeteringParameter { } public final boolean isMetered() { + // A non supported parameter should always appear as metered return isMetered || !isSupported; } public final boolean isSuccessful() { - return isSuccessful && isSupported; + // A non supported parameter should always appear as successful + return isSuccessful || !isSupported; } public abstract void startMetering(@NonNull CameraCharacteristics characteristics,