From d26715d0419400214176950d3e5149083e383e76 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Thu, 23 Apr 2020 23:46:16 +0530 Subject: [PATCH] Added check for camera intent Fixed app crashes with ActivityNotFoundException, When camera app is disabled on the device #69 --- .../dhaval2404/imagepicker/provider/CameraProvider.kt | 5 +++++ .../github/dhaval2404/imagepicker/util/IntentUtils.kt | 10 ++++++++++ imagepicker/src/main/res/values/strings.xml | 2 ++ 3 files changed, 17 insertions(+) diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt index fb253b9d..bddb9664 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt @@ -102,6 +102,11 @@ class CameraProvider(activity: ImagePickerActivity) : BaseProvider(activity) { * Start Camera Capture Intent */ fun startIntent() { + if (!IntentUtils.isCameraAppAvailable(this)) { + setError(R.string.error_camera_app_not_found) + return + } + checkPermission() } diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/IntentUtils.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/IntentUtils.kt index 3c3f5206..963f3460 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/IntentUtils.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/IntentUtils.kt @@ -77,6 +77,16 @@ object IntentUtils { return intent } + /** + * Check if Camera App is available or not + * + * @return true if Camera App is Available else return false + */ + fun isCameraAppAvailable(context: Context) : Boolean { + val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) + return intent.resolveActivity(context.packageManager) != null + } + fun isCameraHardwareAvailable(context: Context): Boolean { return context.packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) } diff --git a/imagepicker/src/main/res/values/strings.xml b/imagepicker/src/main/res/values/strings.xml index 68693a04..cf78f16b 100644 --- a/imagepicker/src/main/res/values/strings.xml +++ b/imagepicker/src/main/res/values/strings.xml @@ -23,5 +23,7 @@ Failed to compress image Task Cancelled + Camera app not found +