From 5870bfb7ffebe613c894c4195ef7ce3e34014457 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Tue, 7 Apr 2015 09:16:43 +0100 Subject: [PATCH] Remove listener when surface is destroyed. --- src/org/briarproject/qrtest/CameraView.java | 1 + src/org/briarproject/qrtest/QrTestActivity.java | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/org/briarproject/qrtest/CameraView.java b/src/org/briarproject/qrtest/CameraView.java index 0fb0a93..dbf50d5 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 3373f78..39a3a90 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(); + } } }); } -- GitLab