@@ -393,7 +393,7 @@ public CameraSource start(SurfaceHolder surfaceHolder) throws IOException {
393
393
mCamera = createCamera ();
394
394
mCamera .setPreviewDisplay (surfaceHolder );
395
395
mCamera .startPreview ();
396
-
396
+
397
397
mCanTakePicture = true ;
398
398
399
399
mProcessingThread = new Thread (mFrameProcessor );
@@ -429,7 +429,7 @@ public void stop() {
429
429
430
430
// clear the buffer to prevent oom exceptions
431
431
mBytesToByteBuffer .clear ();
432
-
432
+
433
433
mCanTakePicture = false ;
434
434
435
435
if (mCamera != null ) {
@@ -532,9 +532,9 @@ public int doZoom(float scale) {
532
532
public void takePicture (ShutterCallback shutter , PictureCallback jpeg ) {
533
533
synchronized (mCameraLock ) {
534
534
if (mCamera != null && mCanTakePicture ) {
535
-
535
+
536
536
mCanTakePicture = false ; // Preview is suspended until we're done
537
-
537
+
538
538
PictureStartCallback startCallback = new PictureStartCallback ();
539
539
startCallback .mDelegate = shutter ;
540
540
PictureDoneCallback doneCallback = new PictureDoneCallback ();
@@ -575,8 +575,8 @@ public boolean setFocusMode(@FocusMode String mode) {
575
575
synchronized (mCameraLock ) {
576
576
if (mCamera != null && mode != null ) {
577
577
Camera .Parameters parameters = mCamera .getParameters ();
578
- final List <String > supportedFlashModes = parameters .getSupportedFlashModes ();
579
- if (supportedFlashModes != null && supportedFlashModes .contains (mode )) {
578
+ final List <String > supportedFocusModes = parameters .getSupportedFlashModes ();
579
+ if (supportedFocusModes != null && supportedFocusModes .contains (mode )) {
580
580
parameters .setFocusMode (mode );
581
581
mCamera .setParameters (parameters );
582
582
mFocusMode = mode ;
@@ -629,6 +629,12 @@ public boolean setFlashMode(@FlashMode String mode) {
629
629
}
630
630
}
631
631
632
+ public boolean isModeSupported (String mode ) {
633
+ Camera .Parameters parameters = mCamera .getParameters ();
634
+ final List <String > supportedModes = parameters .getSupportedFlashModes ();
635
+ return supportedModes != null && supportedModes .contains (mode );
636
+ }
637
+
632
638
/**
633
639
* Starts camera auto-focus and registers a callback function to run when
634
640
* the camera is focused. This method is only valid when preview is active
@@ -828,8 +834,8 @@ private Camera createCamera() {
828
834
setRotation (camera , parameters , mRequestedCameraId );
829
835
830
836
if (mFocusMode != null ) {
831
- final List <String > supportedFlashModes = parameters .getSupportedFlashModes ();
832
- if (supportedFlashModes != null && supportedFlashModes .contains (mFocusMode )) {
837
+ final List <String > supportedFocusModes = parameters .getSupportedFlashModes ();
838
+ if (supportedFocusModes != null && supportedFocusModes .contains (mFocusMode )) {
833
839
parameters .setFocusMode (mFocusMode );
834
840
} else {
835
841
Log .i (TAG , "Camera focus mode: " + mFocusMode + " is not supported on this device." );
0 commit comments