diff --git a/src/org/briarproject/qrtest/CameraView.java b/src/org/briarproject/qrtest/CameraView.java index 4939b2fd1a9d5dfdd29d7d7fdc9679595635924b..eb611f193d54503ad81a02f52f7703c76cc7fcc7 100644 --- a/src/org/briarproject/qrtest/CameraView.java +++ b/src/org/briarproject/qrtest/CameraView.java @@ -41,7 +41,11 @@ AutoFocusCallback { this.previewConsumer = previewConsumer; setDisplayOrientation(rotationDegrees); Parameters params = camera.getParameters(); - params.setFocusMode(macro ? FOCUS_MODE_MACRO : FOCUS_MODE_AUTO); + List<String> modes = params.getSupportedFocusModes(); + if(macro && modes.contains(FOCUS_MODE_MACRO)) + params.setFocusMode(FOCUS_MODE_MACRO); + else if(modes.contains(FOCUS_MODE_AUTO)) + params.setFocusMode(FOCUS_MODE_AUTO); camera.setParameters(params); SurfaceHolder holder = getHolder(); holder.addCallback(this); @@ -68,6 +72,7 @@ AutoFocusCallback { private void stopPreview() { try { previewConsumer.stop(); + camera.cancelAutoFocus(); camera.stopPreview(); } catch(Exception e) { Log.e(TAG, "Error stopping camera preview", e);