From f2008d86428ea3649db4ed29b33403c9a9f61fc4 Mon Sep 17 00:00:00 2001 From: "Alexandru Gaidei (Atomate)" Date: Thu, 27 Jul 2023 11:31:25 +0300 Subject: [PATCH 1/2] Update CameraPickerActivity.kt test empty authority --- .../activity/camera/CameraPickerActivity.kt | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt b/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt index 6122922..8a42ee3 100644 --- a/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt +++ b/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt @@ -38,26 +38,28 @@ internal class CameraPickerActivity : ImagePickerActivity() { } override fun startPicker() { - val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) - filename = System.nanoTime().toString() - val uri = getCaptureImageOutputUri(this, filename) - if (filename.isNotEmpty()) uri?.path?.let { path -> - val file = File(path) - if (Build.VERSION.SDK_INT >= 24) { - cameraIntent.putExtra( - MediaStore.EXTRA_OUTPUT, - FileProvider.getUriForFile( - this, - authority, - file, + if (!authority.isEmpty()) { + val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) + filename = System.nanoTime().toString() + val uri = getCaptureImageOutputUri(this, filename) + if (filename.isNotEmpty()) uri?.path?.let { path -> + val file = File(path) + if (Build.VERSION.SDK_INT >= 24) { + cameraIntent.putExtra( + MediaStore.EXTRA_OUTPUT, + FileProvider.getUriForFile( + this, + authority, + file, + ) ) - ) - cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION) - cameraIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - } else { - cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri) + cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION) + cameraIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + } else { + cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri) + } + launcher.launch(cameraIntent) } - launcher.launch(cameraIntent) } } From dd5d52e51ae4777db364776e5001f1bbe9d471b1 Mon Sep 17 00:00:00 2001 From: "Alexandru Gaidei (Atomate)" Date: Thu, 27 Jul 2023 12:01:23 +0300 Subject: [PATCH 2/2] Avoid camera crash on Background process limit - No background processes --- .../activity/camera/CameraPickerActivity.kt | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt b/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt index 8a42ee3..ec8a917 100644 --- a/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt +++ b/imagepicker/src/main/java/com/shz/imagepicker/imagepicker/activity/camera/CameraPickerActivity.kt @@ -38,28 +38,26 @@ internal class CameraPickerActivity : ImagePickerActivity() { } override fun startPicker() { - if (!authority.isEmpty()) { - val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) - filename = System.nanoTime().toString() - val uri = getCaptureImageOutputUri(this, filename) - if (filename.isNotEmpty()) uri?.path?.let { path -> - val file = File(path) - if (Build.VERSION.SDK_INT >= 24) { - cameraIntent.putExtra( - MediaStore.EXTRA_OUTPUT, - FileProvider.getUriForFile( - this, - authority, - file, - ) + val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) + filename = System.nanoTime().toString() + val uri = getCaptureImageOutputUri(this, filename) + if (filename.isNotEmpty() && authority.isNotEmpty()) uri?.path?.let { path -> + val file = File(path) + if (Build.VERSION.SDK_INT >= 24) { + cameraIntent.putExtra( + MediaStore.EXTRA_OUTPUT, + FileProvider.getUriForFile( + this, + authority, + file, ) - cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION) - cameraIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - } else { - cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri) - } - launcher.launch(cameraIntent) + ) + cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION) + cameraIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + } else { + cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri) } + launcher.launch(cameraIntent) } }