From 784190cd59f1f6fa6da23ccf289446b0b228c3c9 Mon Sep 17 00:00:00 2001 From: Camille Simon <43054281+camsim99@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:08:05 -0500 Subject: [PATCH] [camerax] Modifies initialized camera info to reflect default AF/AE modes and the ability to set focus points for each (#6109) Modifies `CameraInitializedEvent` to 1. Set the initial exposure and focus modes to auto, since CameraX defaults to auto exposure mode and only supports auto focus mode without Camera2 interop 2. Sets the ability to set focus and exposure points to be true, since CameraX supports these by default ~Should land after https://github.com/flutter/packages/pull/6059 so that these values reflect what is actually implemented on our end~ Done :) --- packages/camera/camera_android_camerax/CHANGELOG.md | 5 +++++ .../lib/src/android_camera_camerax.dart | 13 +++++-------- packages/camera/camera_android_camerax/pubspec.yaml | 2 +- .../test/android_camera_camerax_test.dart | 8 ++------ 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 4f63c42d1f91..5c8002bae00f 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.5.0+35 + +* Modifies `CameraInitializedEvent` that is sent when the camera is initialized to indicate that the initial focus + and exposure modes are auto and that developers may set focus and exposure points. + ## 0.5.0+34 * Implements `setFocusPoint`, `setExposurePoint`, and `setExposureOffset`. diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index deddf4709c92..ffff56b4d963 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -347,16 +347,13 @@ class AndroidCameraCameraX extends CameraPlatform { final ResolutionInfo previewResolutionInfo = await preview!.getResolutionInfo(); - // Retrieve exposure and focus mode configurations: - // TODO(camsim99): Implement support for retrieving exposure mode configuration. - // https://github.com/flutter/flutter/issues/120468 + // Mark auto-focus, auto-exposure and setting points for focus & exposure + // as available operations as CameraX does its best across devices to + // support these by default. const ExposureMode exposureMode = ExposureMode.auto; - const bool exposurePointSupported = false; - - // TODO(camsim99): Implement support for retrieving focus mode configuration. - // https://github.com/flutter/flutter/issues/120467 const FocusMode focusMode = FocusMode.auto; - const bool focusPointSupported = false; + const bool exposurePointSupported = true; + const bool focusPointSupported = true; cameraEventStreamController.add(CameraInitializedEvent( cameraId, diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 3df56f5e1db3..9e151c368ef6 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_android_camerax description: Android implementation of the camera plugin using the CameraX library. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.5.0+34 +version: 0.5.0+35 environment: sdk: ^3.1.0 diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 0868916f3bf3..3998860bfb54 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -755,19 +755,15 @@ void main() { startListeningForDeviceOrientationChange: (_, __) {}, ); - // TODO(camsim99): Modify this when camera configuration is supported and - // default values no longer being used. - // https://github.com/flutter/flutter/issues/120468 - // https://github.com/flutter/flutter/issues/120467 final CameraInitializedEvent testCameraInitializedEvent = CameraInitializedEvent( cameraId, resolutionWidth.toDouble(), resolutionHeight.toDouble(), ExposureMode.auto, - false, + true, FocusMode.auto, - false); + true); // Call createCamera. when(mockPreview.setSurfaceProvider()).thenAnswer((_) async => cameraId);