diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index bd39c1cce4f9..fc9c6babd1a9 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.0+22 + +* Fixes `_getResolutionSelectorFromPreset` null pointer error. + ## 0.5.0+21 * Changes fallback resolution strategies for camera use cases to look for a higher resolution if neither the desired 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 7227bb6cd28b..044778fc20f2 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 @@ -880,10 +880,14 @@ class AndroidCameraCameraX extends CameraPlatform { break; case ResolutionPreset.max: // Automatically set strategy to choose highest available. - resolutionStrategy = _shouldCreateDetachedObjectForTesting - ? ResolutionStrategy.detachedHighestAvailableStrategy() - : ResolutionStrategy.highestAvailableStrategy(); - break; + if (_shouldCreateDetachedObjectForTesting) { + resolutionStrategy = + ResolutionStrategy.detachedHighestAvailableStrategy(); + return ResolutionSelector.detached( + resolutionStrategy: resolutionStrategy); + } + resolutionStrategy = ResolutionStrategy.highestAvailableStrategy(); + return ResolutionSelector(resolutionStrategy: resolutionStrategy); case null: // If no preset is specified, default to CameraX's default behavior // for each UseCase. @@ -891,17 +895,15 @@ class AndroidCameraCameraX extends CameraPlatform { } if (_shouldCreateDetachedObjectForTesting) { - resolutionStrategy ??= ResolutionStrategy.detached( + resolutionStrategy = ResolutionStrategy.detached( boundSize: boundSize, fallbackRule: fallbackRule); return ResolutionSelector.detached( resolutionStrategy: resolutionStrategy); } - resolutionStrategy ??= - ResolutionStrategy(boundSize: boundSize!, fallbackRule: fallbackRule); - return ResolutionSelector( - resolutionStrategy: ResolutionStrategy( - boundSize: boundSize!, fallbackRule: fallbackRule)); + resolutionStrategy = + ResolutionStrategy(boundSize: boundSize, fallbackRule: fallbackRule); + return ResolutionSelector(resolutionStrategy: resolutionStrategy); } /// Returns the [QualitySelector] that maps to the specified resolution diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index a7d4c764a890..d7500c09d3ae 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+21 +version: 0.5.0+22 environment: sdk: ">=2.19.0 <4.0.0"