diff --git a/src/org/briarproject/qrtest/CameraView.java b/src/org/briarproject/qrtest/CameraView.java index 0fb0a9351b871eb8482cb5a0c3d26868fadd4bff..dbf50d5963ea71cd471546b93cc63ddd21f4ab86 100644 --- a/src/org/briarproject/qrtest/CameraView.java +++ b/src/org/briarproject/qrtest/CameraView.java @@ -161,6 +161,7 @@ AutoFocusCallback { public void surfaceDestroyed(SurfaceHolder holder) { Log.d(TAG, "Surface destroyed"); surfaceExists = false; + holder.removeCallback(this); } public void onAutoFocus(boolean success, final Camera camera) { diff --git a/src/org/briarproject/qrtest/QrTestActivity.java b/src/org/briarproject/qrtest/QrTestActivity.java index 3373f782d70c33962b45d55fbddde8df5d3fce02..39a3a909bc9aa25ad81ceab9d10e00126a20e494 100644 --- a/src/org/briarproject/qrtest/QrTestActivity.java +++ b/src/org/briarproject/qrtest/QrTestActivity.java @@ -115,10 +115,12 @@ implements QrCodeDecoder.ResultCallback { runOnUiThread(new Runnable() { public void run() { Log.d(TAG, "Got result from decoder"); - cameraBorder.setVisibility(GONE); - tickView.setVisibility(VISIBLE); - if(!gotResult) releaseCamera(); - gotResult = true; + if(!gotResult) { + gotResult = true; + cameraBorder.setVisibility(GONE); + tickView.setVisibility(VISIBLE); + releaseCamera(); + } } }); }