From 8dd9b583a98ed46133ab932487508ebae631343d Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Wed, 1 Apr 2015 22:24:43 +0100
Subject: [PATCH] Don't request focus modes that aren't supported by the
 camera.

---
 src/org/briarproject/qrtest/CameraView.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/org/briarproject/qrtest/CameraView.java b/src/org/briarproject/qrtest/CameraView.java
index 4939b2f..eb611f1 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);
-- 
GitLab