From 858264bab3ae277db553c3b315d04b703f906850 Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Thu, 7 Sep 2017 14:09:06 +0200 Subject: [PATCH] Try fix bug --- .../java/com/otaliastudios/cameraview/MockPreview.java | 4 ---- .../java/com/otaliastudios/cameraview/PreviewTest.java | 6 +++--- .../views/com/otaliastudios/cameraview/Preview.java | 10 +++++++--- .../otaliastudios/cameraview/SurfaceViewPreview.java | 5 ----- .../otaliastudios/cameraview/TextureViewPreview.java | 5 ----- 5 files changed, 10 insertions(+), 20 deletions(-) diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java index a0afd571..66a21042 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java @@ -34,8 +34,4 @@ public class MockPreview extends Preview { return null; } - @Override - boolean isReady() { - return true; - } } diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java index 47abac00..f1fc6ff3 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java @@ -34,12 +34,9 @@ public abstract class PreviewTest extends BaseTest { @Override public void run() { TestActivity a = rule.getActivity(); - preview = createPreview(a, a.getContentView()); surfaceSize = a.getContentSize(); callback = mock(Preview.SurfaceCallback.class); - preview.setSurfaceCallback(callback); - surfaceAvailability = new Task<>(); surfaceAvailability.listen(); surfaceAvailability.start(); @@ -50,6 +47,9 @@ public abstract class PreviewTest extends BaseTest { return null; } }).when(callback).onSurfaceAvailable(); + + preview = createPreview(a, a.getContentView()); + preview.setSurfaceCallback(callback); } }); } diff --git a/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java b/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java index 216fa462..66d54005 100644 --- a/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java +++ b/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java @@ -50,8 +50,6 @@ abstract class Preview { abstract Output getOutput(); - abstract boolean isReady(); - // As far as I can see, these are the actual preview dimensions, as set in CameraParameters. // This is called by the CameraImpl. // These must be alredy rotated, if needed, to be consistent with surface/view sizes. @@ -72,6 +70,10 @@ abstract class Preview { final void setSurfaceCallback(SurfaceCallback callback) { mSurfaceCallback = callback; + // If surface already available, dispatch. + if (mSurfaceWidth != 0 || mSurfaceHeight != 0) { + mSurfaceCallback.onSurfaceAvailable(); + } } @@ -96,12 +98,14 @@ abstract class Preview { } } - protected final void onSurfaceDestroyed() { mSurfaceWidth = 0; mSurfaceHeight = 0; } + final boolean isReady() { + return mSurfaceWidth > 0 && mSurfaceHeight > 0; + } /** * Here we must crop the visible part by applying a > 1 scale to one of our diff --git a/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java b/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java index 10968073..1f4538b1 100644 --- a/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java +++ b/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java @@ -57,9 +57,4 @@ class SurfaceViewPreview extends Preview { return SurfaceHolder.class; } - @Override - boolean isReady() { - return getView().getWidth() != 0 && getView().getHeight() != 0; - } - } diff --git a/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java b/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java index 2e8cdf2d..efca7068 100644 --- a/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java +++ b/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java @@ -60,11 +60,6 @@ class TextureViewPreview extends Preview { return SurfaceTexture.class; } - @Override - boolean isReady() { - return getOutput() != null; - } - @Override SurfaceTexture getOutput() { return getView().getSurfaceTexture();