diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java index 302bfe4f..c0fd2d2c 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java @@ -12,7 +12,7 @@ import com.otaliastudios.cameraview.preview.CameraPreview; public class MockCameraPreview extends CameraPreview { public MockCameraPreview(Context context, ViewGroup parent) { - super(context, parent, null); + super(context, parent); } @Override diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/CameraEngine.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/CameraEngine.java index 3e973d83..5c6a95e2 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/CameraEngine.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/CameraEngine.java @@ -9,6 +9,7 @@ import android.location.Location; import android.os.Handler; import android.os.Looper; +import android.util.Log; import com.google.android.gms.tasks.Continuation; import com.google.android.gms.tasks.OnCompleteListener; @@ -84,8 +85,8 @@ import java.util.concurrent.TimeUnit; * - {@link #start()}: ASYNC - starts the engine (S2). When possible, at a later time, S3 and S4 are also performed. * - {@link #stop()}: ASYNC - stops everything: undoes S4, then S3, then S2. * - {@link #restart()}: ASYNC - completes a stop then a start. - * - {@link #destroy()}: ASYNC - performs a {@link #stop()} that will go on no matter the exceptions, without throwing. - * Makes the engine unusable and clears resources. + * - {@link #destroy()}: SYNC - performs a {@link #stop()} that will go on no matter the exceptions, without throwing. + * Makes the engine unusable and clears resources. * * For example, we expose the engine (S2) state through {@link #getEngineState()}. It will be: * - {@link #STATE_STARTING} if we're into step 2 @@ -650,7 +651,7 @@ public abstract class CameraEngine implements * that would cause deadlocks due to us awaiting for {@link #stop()} to return. */ public void destroy() { - LOG.i("destroy:", "state:", getEngineStateName()); + LOG.i("destroy:", "state:", getEngineStateName(), "thread:", Thread.currentThread()); // Prevent CameraEngine leaks. Don't set to null, or exceptions // inside the standard stop() method might crash the main thread. mHandler.getThread().setUncaughtExceptionHandler(new NoOpExceptionHandler()); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot1PictureRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot1PictureRecorder.java index dbe84214..a099fa85 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot1PictureRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot1PictureRecorder.java @@ -1,32 +1,17 @@ package com.otaliastudios.cameraview.picture; -import android.annotation.TargetApi; -import android.graphics.Bitmap; import android.graphics.ImageFormat; import android.graphics.Rect; -import android.graphics.SurfaceTexture; import android.graphics.YuvImage; import android.hardware.Camera; -import android.opengl.EGL14; -import android.opengl.EGLContext; -import android.opengl.Matrix; -import android.os.Build; import com.otaliastudios.cameraview.CameraLogger; import com.otaliastudios.cameraview.PictureResult; -import com.otaliastudios.cameraview.controls.Facing; import com.otaliastudios.cameraview.engine.Camera1Engine; import com.otaliastudios.cameraview.engine.CameraEngine; -import com.otaliastudios.cameraview.internal.egl.EglCore; -import com.otaliastudios.cameraview.internal.egl.EglViewport; -import com.otaliastudios.cameraview.internal.egl.EglWindowSurface; import com.otaliastudios.cameraview.internal.utils.CropHelper; import com.otaliastudios.cameraview.internal.utils.RotationHelper; import com.otaliastudios.cameraview.internal.utils.WorkerHandler; -import com.otaliastudios.cameraview.preview.CameraPreview; -import com.otaliastudios.cameraview.preview.GlCameraPreview; -import com.otaliastudios.cameraview.preview.RendererFrameCallback; -import com.otaliastudios.cameraview.preview.RendererThread; import com.otaliastudios.cameraview.size.AspectRatio; import com.otaliastudios.cameraview.size.Size; @@ -40,6 +25,7 @@ import java.io.ByteArrayOutputStream; public class Snapshot1PictureRecorder extends PictureRecorder { private static final String TAG = Snapshot1PictureRecorder.class.getSimpleName(); + @SuppressWarnings("unused") private static final CameraLogger LOG = CameraLogger.create(TAG); private Camera1Engine mEngine1; @@ -47,9 +33,6 @@ public class Snapshot1PictureRecorder extends PictureRecorder { private AspectRatio mOutputRatio; private int mFormat; - /** - * Camera1 constructor. - */ public Snapshot1PictureRecorder( @NonNull PictureResult.Stub stub, @NonNull Camera1Engine engine, diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java index f4fa77cd..293e11d6 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java @@ -68,11 +68,9 @@ public class GlCameraPreview extends CameraPreview