diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java index 66a21042..e011c617 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java @@ -10,7 +10,7 @@ import android.view.ViewGroup; public class MockPreview extends Preview { MockPreview(Context context, ViewGroup parent) { - super(context, parent); + super(context, parent, null); } @NonNull diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java index f1fc6ff3..9a8d14e9 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java @@ -12,13 +12,15 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import java.util.concurrent.TimeUnit; + import static org.junit.Assert.*; import static org.mockito.Mockito.*; public abstract class PreviewTest extends BaseTest { - protected abstract Preview createPreview(Context context, ViewGroup parent); + protected abstract Preview createPreview(Context context, ViewGroup parent, Preview.SurfaceCallback callback); @Rule public ActivityTestRule rule = new ActivityTestRule<>(TestActivity.class); @@ -26,7 +28,7 @@ public abstract class PreviewTest extends BaseTest { private Preview preview; private Preview.SurfaceCallback callback; private Size surfaceSize; - private Task surfaceAvailability; + private Task surfaceAvailability; @Before public void setUp() { @@ -43,13 +45,13 @@ public abstract class PreviewTest extends BaseTest { doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - surfaceAvailability.end(null); + surfaceAvailability.end(true); return null; } }).when(callback).onSurfaceAvailable(); - preview = createPreview(a, a.getContentView()); - preview.setSurfaceCallback(callback); + preview = createPreview(a, a.getContentView(), callback); + // preview.setSurfaceCallback(callback); } }); } @@ -71,7 +73,7 @@ public abstract class PreviewTest extends BaseTest { @Test public void testSurfaceAvailable() { - surfaceAvailability.await(); + assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS)); // Wait for surface to be available. verify(callback, times(1)).onSurfaceAvailable(); @@ -81,7 +83,7 @@ public abstract class PreviewTest extends BaseTest { @Test public void testSurfaceDestroyed() { - surfaceAvailability.await(); + assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS)); // Trigger a destroy. ui(new Runnable() { @@ -96,7 +98,7 @@ public abstract class PreviewTest extends BaseTest { @Test public void testCropCenter() throws Exception { - surfaceAvailability.await(); + assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS)); // This is given by the activity, it's the fixed size. float view = getViewAspectRatio(); diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/SurfaceViewPreviewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/SurfaceViewPreviewTest.java index 4e47e9a2..afa18eb2 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/SurfaceViewPreviewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/SurfaceViewPreviewTest.java @@ -13,7 +13,7 @@ import org.junit.runner.RunWith; public class SurfaceViewPreviewTest extends PreviewTest { @Override - protected Preview createPreview(Context context, ViewGroup parent) { - return new SurfaceViewPreview(context, parent); + protected Preview createPreview(Context context, ViewGroup parent, Preview.SurfaceCallback callback) { + return new SurfaceViewPreview(context, parent, callback); } } diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/TextureViewPreviewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/TextureViewPreviewTest.java index a18143a4..5d0d1f31 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/TextureViewPreviewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/TextureViewPreviewTest.java @@ -13,7 +13,7 @@ import org.junit.runner.RunWith; public class TextureViewPreviewTest extends PreviewTest { @Override - protected Preview createPreview(Context context, ViewGroup parent) { - return new TextureViewPreview(context, parent); + protected Preview createPreview(Context context, ViewGroup parent, Preview.SurfaceCallback callback) { + return new TextureViewPreview(context, parent, callback); } } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 0a2723cb..e79066a0 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -159,7 +159,7 @@ public class CameraView extends FrameLayout { protected Preview instantiatePreview(Context context, ViewGroup container) { - return new TextureViewPreview(context, container); + return new TextureViewPreview(context, container, null); } diff --git a/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java b/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java index 66d54005..b8b0e58d 100644 --- a/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java +++ b/cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java @@ -11,7 +11,7 @@ abstract class Preview { protected final static CameraLogger LOG = CameraLogger.create(Preview.class.getSimpleName()); // Used for testing. - Task mCropTask = new Task(); + Task mCropTask = new Task<>(); // This is used to notify CameraImpl to recompute its camera Preview size. // After that, CameraView will need a new layout pass to adapt to the Preview size. @@ -32,8 +32,9 @@ abstract class Preview { private int mDesiredWidth; private int mDesiredHeight; - Preview(Context context, ViewGroup parent) { + Preview(Context context, ViewGroup parent, SurfaceCallback callback) { mView = onCreateView(context, parent); + mSurfaceCallback = callback; } @NonNull diff --git a/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java b/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java index 1f4538b1..ed5e3f60 100644 --- a/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java +++ b/cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java @@ -12,8 +12,8 @@ import android.view.ViewGroup; class SurfaceViewPreview extends Preview { - SurfaceViewPreview(Context context, ViewGroup parent) { - super(context, parent); + SurfaceViewPreview(Context context, ViewGroup parent, SurfaceCallback callback) { + super(context, parent, callback); } @NonNull diff --git a/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java b/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java index efca7068..9bff5d16 100644 --- a/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java +++ b/cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java @@ -13,8 +13,8 @@ class TextureViewPreview extends Preview { private Surface mSurface; - TextureViewPreview(Context context, ViewGroup parent) { - super(context, parent); + TextureViewPreview(Context context, ViewGroup parent, SurfaceCallback callback) { + super(context, parent, callback); } @NonNull