Try fix bug

pull/22/head
Mattia Iavarone 8 years ago
parent 75f0789f1a
commit 858264bab3
  1. 4
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java
  2. 6
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java
  3. 10
      cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java
  4. 5
      cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java
  5. 5
      cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java

@ -34,8 +34,4 @@ public class MockPreview extends Preview<View, Void> {
return null;
}
@Override
boolean isReady() {
return true;
}
}

@ -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);
}
});
}

@ -50,8 +50,6 @@ abstract class Preview<T extends View, Output> {
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<T extends View, Output> {
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<T extends View, Output> {
}
}
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

@ -57,9 +57,4 @@ class SurfaceViewPreview extends Preview<SurfaceView, SurfaceHolder> {
return SurfaceHolder.class;
}
@Override
boolean isReady() {
return getView().getWidth() != 0 && getView().getHeight() != 0;
}
}

@ -60,11 +60,6 @@ class TextureViewPreview extends Preview<TextureView, SurfaceTexture> {
return SurfaceTexture.class;
}
@Override
boolean isReady() {
return getOutput() != null;
}
@Override
SurfaceTexture getOutput() {
return getView().getSurfaceTexture();

Loading…
Cancel
Save