diff --git a/packages/camera/camera/CHANGELOG.md b/packages/camera/camera/CHANGELOG.md index 079aa1685bd5..4775b0385faf 100644 --- a/packages/camera/camera/CHANGELOG.md +++ b/packages/camera/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.1-nullsafety + +- Added freeze parameter to CameraPreview. + ## 0.8.0-nullsafety.3 * Updates the example code listed in the [README.md](README.md), so it runs without errors when you simply copy/ paste it into a Flutter App. diff --git a/packages/camera/camera/lib/src/camera_preview.dart b/packages/camera/camera/lib/src/camera_preview.dart index f6d357b41b77..b382dbb1afe9 100644 --- a/packages/camera/camera/lib/src/camera_preview.dart +++ b/packages/camera/camera/lib/src/camera_preview.dart @@ -11,11 +11,14 @@ import 'package:flutter/services.dart'; /// A widget showing a live camera preview. class CameraPreview extends StatelessWidget { /// Creates a preview widget for the given camera controller. - const CameraPreview(this.controller, {this.child}); + const CameraPreview(this.controller, {this.freeze, this.child}); /// The controller for the camera that the preview is shown for. final CameraController controller; + /// When true the preview will not be updated with new frames. + final bool freeze; + /// A widget to overlay on top of the camera preview final Widget? child; @@ -31,8 +34,10 @@ class CameraPreview extends StatelessWidget { children: [ RotatedBox( quarterTurns: _getQuarterTurns(), - child: - CameraPlatform.instance.buildPreview(controller.cameraId), + child: CameraPlatform.instance.buildPreview( + controller.cameraId, + freeze: freeze, + ), ), child ?? Container(), ], diff --git a/packages/camera/camera/pubspec.yaml b/packages/camera/camera/pubspec.yaml index 2d620505def2..fa6a4ddac531 100644 --- a/packages/camera/camera/pubspec.yaml +++ b/packages/camera/camera/pubspec.yaml @@ -2,14 +2,14 @@ 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.8.0-nullsafety.3 +version: 0.8.1-nullsafety homepage: https://github.com/flutter/plugins/tree/master/packages/camera/camera dependencies: flutter: sdk: flutter - camera_platform_interface: ^2.0.0-nullsafety + camera_platform_interface: ^2.0.1-nullsafety pedantic: ^1.10.0 quiver: ^3.0.0-nullsafety.3 diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md index ab3d559bf2fb..2c5a1ef87b65 100644 --- a/packages/camera/camera_platform_interface/CHANGELOG.md +++ b/packages/camera/camera_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.1-nullsafety + +- Added freeze parameter to buildPreview. + ## 2.0.0-nullsafety - Migrate to null safety. diff --git a/packages/camera/camera_platform_interface/lib/src/method_channel/method_channel_camera.dart b/packages/camera/camera_platform_interface/lib/src/method_channel/method_channel_camera.dart index 9f7f723bcd79..839435246db1 100644 --- a/packages/camera/camera_platform_interface/lib/src/method_channel/method_channel_camera.dart +++ b/packages/camera/camera_platform_interface/lib/src/method_channel/method_channel_camera.dart @@ -400,8 +400,8 @@ class MethodChannelCamera extends CameraPlatform { } @override - Widget buildPreview(int cameraId) { - return Texture(textureId: cameraId); + Widget buildPreview(int cameraId, {bool freeze = false}) { + return Texture(textureId: cameraId, freeze: freeze); } /// Returns the flash mode as a String. diff --git a/packages/camera/camera_platform_interface/lib/src/platform_interface/camera_platform.dart b/packages/camera/camera_platform_interface/lib/src/platform_interface/camera_platform.dart index 39a17e43dc0f..97e8cf502054 100644 --- a/packages/camera/camera_platform_interface/lib/src/platform_interface/camera_platform.dart +++ b/packages/camera/camera_platform_interface/lib/src/platform_interface/camera_platform.dart @@ -236,7 +236,9 @@ abstract class CameraPlatform extends PlatformInterface { } /// Returns a widget showing a live camera preview. - Widget buildPreview(int cameraId) { + /// + /// When [freeze] is true the preview will not be updated with new frames. + Widget buildPreview(int cameraId, {bool freeze = false}) { throw UnimplementedError('buildView() has not been implemented.'); } diff --git a/packages/camera/camera_platform_interface/pubspec.yaml b/packages/camera/camera_platform_interface/pubspec.yaml index 5817ce5c3fb0..251b27f55612 100644 --- a/packages/camera/camera_platform_interface/pubspec.yaml +++ b/packages/camera/camera_platform_interface/pubspec.yaml @@ -3,7 +3,7 @@ description: A common platform interface for the camera plugin. homepage: https://github.com/flutter/plugins/tree/master/packages/camera/camera_platform_interface # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.0.0-nullsafety +version: 2.0.1-nullsafety dependencies: flutter: