disable PreviewView while capturing photo

This commit is contained in:
darthpaul 2022-10-11 01:05:01 +01:00
parent ac3044f52b
commit 579f5d0514
3 changed files with 12 additions and 11 deletions

View File

@ -141,7 +141,7 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
handleTogglePhotoVideo() handleTogglePhotoVideo()
checkButtons() checkButtons()
} }
toggleBottomButtons(false) toggleBottomButtons(enabled = true)
mOrientationEventListener.enable() mOrientationEventListener.enable()
} }
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
@ -429,7 +429,7 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
private fun handleShutter() { private fun handleShutter() {
if (mIsInPhotoMode) { if (mIsInPhotoMode) {
toggleBottomButtons(true) toggleBottomButtons(enabled = false)
change_resolution.isEnabled = true change_resolution.isEnabled = true
mPreview?.tryTakePicture() mPreview?.tryTakePicture()
} else { } else {
@ -469,7 +469,7 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
hideTimer() hideTimer()
togglePhotoVideoMode() togglePhotoVideoMode()
checkButtons() checkButtons()
toggleBottomButtons(false) toggleBottomButtons(enabled = true)
} }
private fun togglePhotoVideoMode() { private fun togglePhotoVideoMode() {
@ -638,11 +638,12 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
toggle_camera.setImageResource(if (frontCamera) R.drawable.ic_camera_rear_vector else R.drawable.ic_camera_front_vector) toggle_camera.setImageResource(if (frontCamera) R.drawable.ic_camera_rear_vector else R.drawable.ic_camera_front_vector)
} }
override fun toggleBottomButtons(hide: Boolean) { override fun toggleBottomButtons(enabled: Boolean) {
runOnUiThread { runOnUiThread {
shutter.isClickable = !hide shutter.isClickable = enabled
toggle_camera.isClickable = !hide preview_view.isEnabled = enabled
toggle_flash.isClickable = !hide toggle_camera.isClickable = enabled
toggle_flash.isClickable = enabled
} }
} }

View File

@ -431,7 +431,7 @@ class CameraXPreview(
val imageBytes = ImageUtil.jpegImageToJpegByteArray(image) val imageBytes = ImageUtil.jpegImageToJpegByteArray(image)
val bitmap = BitmapUtils.makeBitmap(imageBytes) val bitmap = BitmapUtils.makeBitmap(imageBytes)
activity.runOnUiThread { activity.runOnUiThread {
listener.toggleBottomButtons(false) listener.toggleBottomButtons(enabled = true)
if (bitmap != null) { if (bitmap != null) {
listener.onImageCaptured(bitmap) listener.onImageCaptured(bitmap)
} else { } else {
@ -448,7 +448,7 @@ class CameraXPreview(
saveExifAttributes = config.savePhotoMetadata, saveExifAttributes = config.savePhotoMetadata,
onImageSaved = { savedUri -> onImageSaved = { savedUri ->
activity.runOnUiThread { activity.runOnUiThread {
listener.toggleBottomButtons(false) listener.toggleBottomButtons(enabled = true)
listener.onMediaSaved(savedUri) listener.onMediaSaved(savedUri)
} }
}, },
@ -466,7 +466,7 @@ class CameraXPreview(
} }
private fun handleImageCaptureError(exception: ImageCaptureException) { private fun handleImageCaptureError(exception: ImageCaptureException) {
listener.toggleBottomButtons(false) listener.toggleBottomButtons(enabled = true)
cameraErrorHandler.handleImageCaptureError(exception.imageCaptureError) cameraErrorHandler.handleImageCaptureError(exception.imageCaptureError)
} }

View File

@ -9,7 +9,7 @@ interface CameraXPreviewListener {
fun setHasFrontAndBackCamera(hasFrontAndBack: Boolean) fun setHasFrontAndBackCamera(hasFrontAndBack: Boolean)
fun setFlashAvailable(available: Boolean) fun setFlashAvailable(available: Boolean)
fun onChangeCamera(frontCamera: Boolean) fun onChangeCamera(frontCamera: Boolean)
fun toggleBottomButtons(hide: Boolean) fun toggleBottomButtons(enabled: Boolean)
fun shutterAnimation() fun shutterAnimation()
fun onMediaSaved(uri: Uri) fun onMediaSaved(uri: Uri)
fun onImageCaptured(bitmap: Bitmap) fun onImageCaptured(bitmap: Bitmap)