From a071b2452411c428b6082ec2f3cc38636ab3dad9 Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Thu, 18 Feb 2021 17:31:09 +0100 Subject: [PATCH 1/3] Update version number --- packages/camera/camera/CHANGELOG.md | 4 ++++ packages/camera/camera/ios/Classes/CameraPlugin.m | 2 +- packages/camera/camera/pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/camera/camera/CHANGELOG.md b/packages/camera/camera/CHANGELOG.md index 7391f3090565..29774748a32b 100644 --- a/packages/camera/camera/CHANGELOG.md +++ b/packages/camera/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.0-nullsafety.2 + +* Solved delay when using the zoom feature on iOS. + ## 0.8.0-nullsafety.1 * Added a timeout to the pre-capture sequence on Android to prevent crashes when the camera cannot get a focus. diff --git a/packages/camera/camera/ios/Classes/CameraPlugin.m b/packages/camera/camera/ios/Classes/CameraPlugin.m index d97ce88a58d8..c1770ff6d40b 100644 --- a/packages/camera/camera/ios/Classes/CameraPlugin.m +++ b/packages/camera/camera/ios/Classes/CameraPlugin.m @@ -1068,7 +1068,7 @@ - (void)setZoomLevel:(CGFloat)zoom Result:(FlutterResult)result { result(getFlutterError(error)); return; } - [_captureDevice rampToVideoZoomFactor:zoom withRate:1]; + _captureDevice.videoZoomFactor = zoom; [_captureDevice unlockForConfiguration]; result(nil); diff --git a/packages/camera/camera/pubspec.yaml b/packages/camera/camera/pubspec.yaml index 5b98c39acd99..4b820b8b64cf 100644 --- a/packages/camera/camera/pubspec.yaml +++ b/packages/camera/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.8.0-nullsafety.1 +version: 0.8.0-nullsafety.2 homepage: https://github.com/flutter/plugins/tree/master/packages/camera/camera dependencies: From 91c25c4a81fb9da470047923c682b409df4cbb8c Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Thu, 18 Feb 2021 17:35:02 +0100 Subject: [PATCH 2/3] Simplified zoom feature in example --- packages/camera/camera/example/lib/main.dart | 31 ++++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/packages/camera/camera/example/lib/main.dart b/packages/camera/camera/example/lib/main.dart index 6244aa5a8e37..c8c7be758cd8 100644 --- a/packages/camera/camera/example/lib/main.dart +++ b/packages/camera/camera/example/lib/main.dart @@ -56,9 +56,6 @@ class _CameraExampleHomeState extends State double _currentScale = 1.0; double _baseScale = 1.0; - // Counting pointers (number of user fingers on screen) - int _pointers = 0; - @override void initState() { super.initState(); @@ -171,21 +168,17 @@ class _CameraExampleHomeState extends State ), ); } else { - return Listener( - onPointerDown: (_) => _pointers++, - onPointerUp: (_) => _pointers--, - child: CameraPreview( - controller, - child: LayoutBuilder( - builder: (BuildContext context, BoxConstraints constraints) { - return GestureDetector( - behavior: HitTestBehavior.opaque, - onScaleStart: _handleScaleStart, - onScaleUpdate: _handleScaleUpdate, - onTapDown: (details) => onViewFinderTap(details, constraints), - ); - }), - ), + return CameraPreview( + controller, + child: LayoutBuilder( + builder: (BuildContext context, BoxConstraints constraints) { + return GestureDetector( + behavior: HitTestBehavior.opaque, + onScaleStart: _handleScaleStart, + onScaleUpdate: _handleScaleUpdate, + onTapDown: (details) => onViewFinderTap(details, constraints), + ); + }), ); } } @@ -196,7 +189,7 @@ class _CameraExampleHomeState extends State Future _handleScaleUpdate(ScaleUpdateDetails details) async { // When there are not exactly two fingers on screen don't scale - if (_pointers != 2) { + if (details.pointerCount != 2) { return; } From 3d1cc98815fc040b51f79e28e2a368a7d7f4c772 Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Sat, 20 Feb 2021 09:50:20 +0100 Subject: [PATCH 3/3] Revert use of pointerCount property --- packages/camera/camera/example/lib/main.dart | 31 ++++++++++++-------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/camera/camera/example/lib/main.dart b/packages/camera/camera/example/lib/main.dart index c8c7be758cd8..6244aa5a8e37 100644 --- a/packages/camera/camera/example/lib/main.dart +++ b/packages/camera/camera/example/lib/main.dart @@ -56,6 +56,9 @@ class _CameraExampleHomeState extends State double _currentScale = 1.0; double _baseScale = 1.0; + // Counting pointers (number of user fingers on screen) + int _pointers = 0; + @override void initState() { super.initState(); @@ -168,17 +171,21 @@ class _CameraExampleHomeState extends State ), ); } else { - return CameraPreview( - controller, - child: LayoutBuilder( - builder: (BuildContext context, BoxConstraints constraints) { - return GestureDetector( - behavior: HitTestBehavior.opaque, - onScaleStart: _handleScaleStart, - onScaleUpdate: _handleScaleUpdate, - onTapDown: (details) => onViewFinderTap(details, constraints), - ); - }), + return Listener( + onPointerDown: (_) => _pointers++, + onPointerUp: (_) => _pointers--, + child: CameraPreview( + controller, + child: LayoutBuilder( + builder: (BuildContext context, BoxConstraints constraints) { + return GestureDetector( + behavior: HitTestBehavior.opaque, + onScaleStart: _handleScaleStart, + onScaleUpdate: _handleScaleUpdate, + onTapDown: (details) => onViewFinderTap(details, constraints), + ); + }), + ), ); } } @@ -189,7 +196,7 @@ class _CameraExampleHomeState extends State Future _handleScaleUpdate(ScaleUpdateDetails details) async { // When there are not exactly two fingers on screen don't scale - if (details.pointerCount != 2) { + if (_pointers != 2) { return; }