From 52e4abf56269d0b484f1e150abfda9769b12558b Mon Sep 17 00:00:00 2001 From: Jake McGinty Date: Mon, 3 Aug 2015 13:26:07 -0700 Subject: [PATCH] prevent a thread race in CameraView when a camera preview surface is destroyed, send it down the same pipelien to make sure a race condition isn't hit fixes #3864 Closes #3875 // FREEBIE --- .../thoughtcrime/securesms/components/camera/CameraView.java | 4 +--- .../securesms/components/camera/SurfacePreviewStrategy.java | 2 +- .../securesms/components/camera/TexturePreviewStrategy.java | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/org/thoughtcrime/securesms/components/camera/CameraView.java b/src/org/thoughtcrime/securesms/components/camera/CameraView.java index 7d2a5e78b6..d83d776353 100644 --- a/src/org/thoughtcrime/securesms/components/camera/CameraView.java +++ b/src/org/thoughtcrime/securesms/components/camera/CameraView.java @@ -137,9 +137,7 @@ public class CameraView extends FrameLayout { } @Override protected Void onRunBackground() { - if (camera != null) { - previewDestroyed(); - } + previewDestroyed(); return null; } diff --git a/src/org/thoughtcrime/securesms/components/camera/SurfacePreviewStrategy.java b/src/org/thoughtcrime/securesms/components/camera/SurfacePreviewStrategy.java index 5e2108546f..78e8a2769c 100644 --- a/src/org/thoughtcrime/securesms/components/camera/SurfacePreviewStrategy.java +++ b/src/org/thoughtcrime/securesms/components/camera/SurfacePreviewStrategy.java @@ -56,7 +56,7 @@ class SurfacePreviewStrategy implements PreviewStrategy, @Override public void surfaceDestroyed(SurfaceHolder holder) { Log.w(TAG, "surfaceDestroyed()"); - cameraView.previewDestroyed(); + cameraView.onPause(); } @Override diff --git a/src/org/thoughtcrime/securesms/components/camera/TexturePreviewStrategy.java b/src/org/thoughtcrime/securesms/components/camera/TexturePreviewStrategy.java index 311eed1626..4b7049eeb2 100644 --- a/src/org/thoughtcrime/securesms/components/camera/TexturePreviewStrategy.java +++ b/src/org/thoughtcrime/securesms/components/camera/TexturePreviewStrategy.java @@ -55,7 +55,7 @@ class TexturePreviewStrategy implements PreviewStrategy, @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { Log.w(TAG, "onSurfaceTextureDestroyed()"); - cameraView.previewDestroyed(); + cameraView.onPause(); return(true); }