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
pull/1/head
Jake McGinty 9 years ago committed by Moxie Marlinspike
parent 324c85cd9f
commit 52e4abf562

@ -137,9 +137,7 @@ public class CameraView extends FrameLayout {
} }
@Override protected Void onRunBackground() { @Override protected Void onRunBackground() {
if (camera != null) { previewDestroyed();
previewDestroyed();
}
return null; return null;
} }

@ -56,7 +56,7 @@ class SurfacePreviewStrategy implements PreviewStrategy,
@Override @Override
public void surfaceDestroyed(SurfaceHolder holder) { public void surfaceDestroyed(SurfaceHolder holder) {
Log.w(TAG, "surfaceDestroyed()"); Log.w(TAG, "surfaceDestroyed()");
cameraView.previewDestroyed(); cameraView.onPause();
} }
@Override @Override

@ -55,7 +55,7 @@ class TexturePreviewStrategy implements PreviewStrategy,
@Override @Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
Log.w(TAG, "onSurfaceTextureDestroyed()"); Log.w(TAG, "onSurfaceTextureDestroyed()");
cameraView.previewDestroyed(); cameraView.onPause();
return(true); return(true);
} }

Loading…
Cancel
Save