|
34 | 34 | import android.util.Log; |
35 | 35 | import android.util.SparseIntArray; |
36 | 36 | import android.view.Surface; |
37 | | - |
38 | 37 | import java.nio.ByteBuffer; |
39 | 38 | import java.util.Arrays; |
40 | 39 | import java.util.Set; |
@@ -263,11 +262,20 @@ Set<AspectRatio> getSupportedAspectRatios() { |
263 | 262 |
|
264 | 263 | @Override |
265 | 264 | boolean setAspectRatio(AspectRatio ratio) { |
266 | | - if (ratio == null || ratio.equals(mAspectRatio) || |
267 | | - !mPreviewSizes.ratios().contains(ratio)) { |
| 265 | + if (ratio == null || ratio.equals(mAspectRatio)) { |
268 | 266 | // TODO: Better error handling |
269 | 267 | return false; |
270 | 268 | } |
| 269 | + |
| 270 | + if (!mPreviewSizes.ratios().contains(ratio)) { |
| 271 | + if (mPreviewSizes.ratios().size() <= 0) { |
| 272 | + // may be initialized from layout xml |
| 273 | + mAspectRatio = ratio; |
| 274 | + return true; |
| 275 | + } |
| 276 | + return false; |
| 277 | + } |
| 278 | + |
271 | 279 | mAspectRatio = ratio; |
272 | 280 | prepareImageReader(); |
273 | 281 | if (mCaptureSession != null) { |
@@ -640,8 +648,8 @@ void captureStillPicture() { |
640 | 648 | new CameraCaptureSession.CaptureCallback() { |
641 | 649 | @Override |
642 | 650 | public void onCaptureCompleted(@NonNull CameraCaptureSession session, |
643 | | - @NonNull CaptureRequest request, |
644 | | - @NonNull TotalCaptureResult result) { |
| 651 | + @NonNull CaptureRequest request, |
| 652 | + @NonNull TotalCaptureResult result) { |
645 | 653 | unlockFocus(); |
646 | 654 | } |
647 | 655 | }, null); |
@@ -695,13 +703,13 @@ void setState(int state) { |
695 | 703 |
|
696 | 704 | @Override |
697 | 705 | public void onCaptureProgressed(@NonNull CameraCaptureSession session, |
698 | | - @NonNull CaptureRequest request, @NonNull CaptureResult partialResult) { |
| 706 | + @NonNull CaptureRequest request, @NonNull CaptureResult partialResult) { |
699 | 707 | process(partialResult); |
700 | 708 | } |
701 | 709 |
|
702 | 710 | @Override |
703 | 711 | public void onCaptureCompleted(@NonNull CameraCaptureSession session, |
704 | | - @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) { |
| 712 | + @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) { |
705 | 713 | process(result); |
706 | 714 | } |
707 | 715 |
|
|
0 commit comments