From 7ad21708fe56f651fe3be1faaf035b4a1c31be1a Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Tue, 3 May 2016 09:53:09 +0100 Subject: [PATCH] Reinitialise viewfinder when camera view is shown. #331 --- .../briarproject/android/util/CameraView.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/briar-android/src/org/briarproject/android/util/CameraView.java b/briar-android/src/org/briarproject/android/util/CameraView.java index 623650e662..3cceafd500 100644 --- a/briar-android/src/org/briarproject/android/util/CameraView.java +++ b/briar-android/src/org/briarproject/android/util/CameraView.java @@ -44,20 +44,19 @@ public class CameraView extends SurfaceView implements SurfaceHolder.Callback, public CameraView(Context context) { super(context); - initialize(); } public CameraView(Context context, AttributeSet attrs) { super(context, attrs); - initialize(); } public CameraView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - initialize(); } - private void initialize() { + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); setKeepScreenOn(true); SurfaceHolder holder = getHolder(); if (Build.VERSION.SDK_INT < 11) @@ -65,6 +64,13 @@ public class CameraView extends SurfaceView implements SurfaceHolder.Callback, holder.addCallback(this); } + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + setKeepScreenOn(false); + getHolder().removeCallback(this); + } + public void start(Camera camera, PreviewConsumer previewConsumer, int rotationDegrees) { this.camera = camera; @@ -93,9 +99,7 @@ public class CameraView extends SurfaceView implements SurfaceHolder.Callback, camera.startPreview(); if (autoFocus) camera.autoFocus(this); previewConsumer.start(camera); - } catch (IOException e) { - LOG.log(WARNING, "Error starting camera preview", e); - } catch (RuntimeException e) { + } catch (IOException | RuntimeException e) { LOG.log(WARNING, "Error starting camera preview", e); } } @@ -246,7 +250,6 @@ public class CameraView extends SurfaceView implements SurfaceHolder.Callback, public void surfaceDestroyed(SurfaceHolder holder) { LOG.info("Surface destroyed"); surfaceExists = false; - holder.removeCallback(this); } public void onAutoFocus(boolean success, final Camera camera) { -- GitLab