Fix race condition

pull/502/head
Mattia Iavarone 6 years ago
parent d8c674c4a9
commit 9519629959
  1. 20
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/CameraEngine.java

@ -1229,27 +1229,31 @@ public abstract class CameraEngine implements
@Nullable @Nullable
public final Size getPictureSize(@SuppressWarnings("SameParameterValue") @NonNull Reference reference) { public final Size getPictureSize(@SuppressWarnings("SameParameterValue") @NonNull Reference reference) {
if (mCaptureSize == null || mMode == Mode.VIDEO) return null; Size size = mCaptureSize;
return getAngles().flip(Reference.SENSOR, reference) ? mCaptureSize.flip() : mCaptureSize; if (size == null || mMode == Mode.VIDEO) return null;
return getAngles().flip(Reference.SENSOR, reference) ? size.flip() : size;
} }
@Nullable @Nullable
public final Size getVideoSize(@SuppressWarnings("SameParameterValue") @NonNull Reference reference) { public final Size getVideoSize(@SuppressWarnings("SameParameterValue") @NonNull Reference reference) {
if (mCaptureSize == null || mMode == Mode.PICTURE) return null; Size size = mCaptureSize;
return getAngles().flip(Reference.SENSOR, reference) ? mCaptureSize.flip() : mCaptureSize; if (size == null || mMode == Mode.PICTURE) return null;
return getAngles().flip(Reference.SENSOR, reference) ? size.flip() : size;
} }
@Nullable @Nullable
public final Size getPreviewStreamSize(@NonNull Reference reference) { public final Size getPreviewStreamSize(@NonNull Reference reference) {
if (mPreviewStreamSize == null) return null; Size size = mPreviewStreamSize;
return getAngles().flip(Reference.SENSOR, reference) ? mPreviewStreamSize.flip() : mPreviewStreamSize; if (size == null) return null;
return getAngles().flip(Reference.SENSOR, reference) ? size.flip() : size;
} }
@SuppressWarnings("SameParameterValue") @SuppressWarnings("SameParameterValue")
@Nullable @Nullable
private Size getPreviewSurfaceSize(@NonNull Reference reference) { private Size getPreviewSurfaceSize(@NonNull Reference reference) {
if (mPreview == null) return null; CameraPreview preview = mPreview;
return getAngles().flip(Reference.VIEW, reference) ? mPreview.getSurfaceSize().flip() : mPreview.getSurfaceSize(); if (preview == null) return null;
return getAngles().flip(Reference.VIEW, reference) ? preview.getSurfaceSize().flip() : preview.getSurfaceSize();
} }
/** /**

Loading…
Cancel
Save