diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/IntegrationTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/IntegrationTest.java index c1c8d6ad..f1c5c2dc 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/IntegrationTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/IntegrationTest.java @@ -3,6 +3,8 @@ package com.otaliastudios.cameraview; import android.graphics.Bitmap; import android.graphics.PointF; +import android.hardware.Camera; +import android.os.Build; import android.support.test.filters.MediumTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; @@ -364,6 +366,25 @@ public class IntegrationTest extends BaseTest { // This also ensures there are no crashes when attaching it to camera parameters. } + @Test + public void testSetPlaySounds() { + controller.mPlaySoundsTask.listen(); + boolean oldValue = camera.getPlaySounds(); + boolean newValue = !oldValue; + camera.setPlaySounds(newValue); + controller.mPlaySoundsTask.await(300); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + Camera.CameraInfo info = new Camera.CameraInfo(); + Camera.getCameraInfo(camera.getCameraId(), info); + if (info.canDisableShutterSound) { + assertEquals(newValue, camera.getPlaySounds()); + } + } else { + assertEquals(oldValue, camera.getPlaySounds()); + } + } + //endregion //region testSetVideoQuality diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java index 254eaab0..d98f9e96 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java @@ -78,6 +78,7 @@ abstract class CameraController implements Task mLocationTask = new Task<>(); Task mVideoQualityTask = new Task<>(); Task mStartVideoTask = new Task<>(); + Task mPlaySoundsTask = new Task<>(); CameraController(CameraView.CameraCallbacks callback) { mCameraCallbacks = callback; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 5288fa0c..aaa5a23e 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -1706,5 +1706,10 @@ public class CameraView extends FrameLayout { return mCameraController.getFlash(); } + + /* for tests */int getCameraId(){ + return mCameraController.mCameraId; + } + //endregion }