From 29a8842db6b2bebf92e7250a7b0fd4627763614c Mon Sep 17 00:00:00 2001 From: Yaakov Schectman Date: Tue, 15 Oct 2024 14:15:16 -0400 Subject: [PATCH 1/2] Mark description @NonNull --- .../main/java/io/flutter/plugins/camera/Camera.java | 11 +++++++---- .../java/io/flutter/plugins/camera/DartMessenger.java | 7 ++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java index 7668ec97eec..5bb57ba2349 100644 --- a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java +++ b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java @@ -396,10 +396,11 @@ public void onOpened(@NonNull CameraDevice device) { cameraFeatures.getFocusPoint().checkIsSupported()); } } catch (Exception e) { + String message = (e.getMessage() == null) ? e.getClass().getName() : e.getMessage(); if (BuildConfig.DEBUG) { - Log.i(TAG, "open | onOpened error: " + e.getMessage()); + Log.i(TAG, "open | onOpened error: " + message); } - dartMessenger.sendCameraErrorEvent(e.getMessage()); + dartMessenger.sendCameraErrorEvent(message); close(); } } @@ -792,7 +793,8 @@ private void lockAutoFocus() { try { captureSession.capture(previewRequestBuilder.build(), null, backgroundHandler); } catch (CameraAccessException e) { - dartMessenger.sendCameraErrorEvent(e.getMessage()); + String message = (e.getMessage() == null) ? "CameraAccessException" : e.getMessage(); + dartMessenger.sendCameraErrorEvent(message); } } @@ -815,7 +817,8 @@ void unlockAutoFocus() { captureSession.capture(previewRequestBuilder.build(), null, backgroundHandler); } catch (CameraAccessException e) { - dartMessenger.sendCameraErrorEvent(e.getMessage()); + String message = (e.getMessage() == null) ? "CameraAccessException" : e.getMessage(); + dartMessenger.sendCameraErrorEvent(message); return; } diff --git a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/DartMessenger.java b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/DartMessenger.java index 819c57da043..f76fcdec1f9 100644 --- a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/DartMessenger.java +++ b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/DartMessenger.java @@ -95,17 +95,14 @@ void sendCameraClosingEvent() { handler.post(() -> eventApi.closed(new NoOpVoidResult())); } - // TODO(schectman): Make `description` non-null, see - // https://github.com/flutter/flutter/issues/156729 /** * Sends a message to the Flutter client informing that an error occurred while interacting with * the camera. * * @param description contains details regarding the error that occurred. */ - void sendCameraErrorEvent(@Nullable String description) { - String errorMessage = (description == null) ? "" : description; - handler.post(() -> eventApi.error(errorMessage, new NoOpVoidResult())); + void sendCameraErrorEvent(@NonNull String description) { + handler.post(() -> eventApi.error(description, new NoOpVoidResult())); } /** From 29046c8c5e89d710799691ec465ff5af356d6abd Mon Sep 17 00:00:00 2001 From: Yaakov Schectman Date: Thu, 17 Oct 2024 06:42:05 -0400 Subject: [PATCH 2/2] Extend error messages --- .../java/io/flutter/plugins/camera/Camera.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java index 5bb57ba2349..e5d5ea0e103 100644 --- a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java +++ b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Camera.java @@ -396,7 +396,10 @@ public void onOpened(@NonNull CameraDevice device) { cameraFeatures.getFocusPoint().checkIsSupported()); } } catch (Exception e) { - String message = (e.getMessage() == null) ? e.getClass().getName() : e.getMessage(); + String message = + (e.getMessage() == null) + ? (e.getClass().getName() + " occurred while opening camera.") + : e.getMessage(); if (BuildConfig.DEBUG) { Log.i(TAG, "open | onOpened error: " + message); } @@ -793,7 +796,10 @@ private void lockAutoFocus() { try { captureSession.capture(previewRequestBuilder.build(), null, backgroundHandler); } catch (CameraAccessException e) { - String message = (e.getMessage() == null) ? "CameraAccessException" : e.getMessage(); + String message = + (e.getMessage() == null) + ? "CameraAccessException occurred while locking autofocus." + : e.getMessage(); dartMessenger.sendCameraErrorEvent(message); } } @@ -817,7 +823,10 @@ void unlockAutoFocus() { captureSession.capture(previewRequestBuilder.build(), null, backgroundHandler); } catch (CameraAccessException e) { - String message = (e.getMessage() == null) ? "CameraAccessException" : e.getMessage(); + String message = + (e.getMessage() == null) + ? "CameraAccessException occurred while unlocking autofocus." + : e.getMessage(); dartMessenger.sendCameraErrorEvent(message); return; }