From 31423cdab33050d87f64120e6e4f4fb612ae2a9b Mon Sep 17 00:00:00 2001 From: panmari Date: Thu, 25 Jun 2020 19:57:04 +0200 Subject: [PATCH 1/2] Returning early after camera access exception is handled. The intent here is to catch the exception and pass it to dart code, no need to raise it afterwards. An additional complication here is that CameraAccessException does extend from RuntimeException. --- packages/camera/CHANGELOG.md | 4 ++++ .../java/io/flutter/plugins/camera/MethodCallHandlerImpl.java | 2 ++ packages/camera/pubspec.yaml | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index 43e5f463604c..91dd86fbe1f6 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.8+4 + +* Improved error handling on Android when camera permissions are not granted. + ## 0.5.8+3 * Fix bug in usage example in README.md diff --git a/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java b/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java index cb58d19a9a02..132075555f26 100644 --- a/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java +++ b/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java @@ -167,8 +167,10 @@ private void instantiateCamera(MethodCall call, Result result) throws CameraAcce private void handleException(Exception exception, Result result) { if (exception instanceof CameraAccessException) { result.error("CameraAccess", exception.getMessage(), null); + return; } + // CameraAccessException can not be cast to a RuntimeException. throw (RuntimeException) exception; } } diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml index a1ce42370191..a93c016e1f10 100644 --- a/packages/camera/pubspec.yaml +++ b/packages/camera/pubspec.yaml @@ -2,7 +2,7 @@ name: camera description: A Flutter plugin for getting information about and controlling the camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video, and streaming image buffers to dart. -version: 0.5.8+3 +version: 0.5.8+4 homepage: https://github.com/flutter/plugins/tree/master/packages/camera From 6a28b71f2b9134173d7e456f3a53c5b515af87cb Mon Sep 17 00:00:00 2001 From: Maurice Parrish Date: Tue, 7 Jul 2020 08:44:13 -0700 Subject: [PATCH 2/2] Update CHANGELOG.md --- packages/camera/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index 91dd86fbe1f6..88c0ed8c7625 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,6 +1,6 @@ ## 0.5.8+4 -* Improved error handling on Android when camera permissions are not granted. +* Fixed bug caused by casting a `CameraAccessException` on Android. ## 0.5.8+3