From e117cdcb9058e5c098058e5348a45624f475b957 Mon Sep 17 00:00:00 2001 From: BradenBagby Date: Mon, 23 Jan 2023 09:35:42 -0700 Subject: [PATCH 1/3] platform interface changes pr --- .../camera_platform_interface/CHANGELOG.md | 3 +++ .../method_channel/method_channel_camera.dart | 11 +++++++++ .../platform_interface/camera_platform.dart | 6 +++++ .../camera_platform_interface/pubspec.yaml | 2 +- .../method_channel_camera_test.dart | 23 +++++++++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md index ba27eb3c7fe6..51599a67591a 100644 --- a/packages/camera/camera_platform_interface/CHANGELOG.md +++ b/packages/camera/camera_platform_interface/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.3.5 +* Allows camera to be switched while video recording. + ## 2.3.4 * Updates code for stricter lint checks. 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 f770499c755a..14d20fc817b2 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 @@ -504,6 +504,17 @@ class MethodChannelCamera extends CameraPlatform { ); } + @override + Future setDescriptionWhileRecording( + CameraDescription description) async { + await _channel.invokeMethod( + 'setDescriptionWhileRecording', + { + 'cameraName': description.name, + }, + ); + } + @override Widget buildPreview(int cameraId) { return Texture(textureId: cameraId); 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 b3e5b8f82afa..b43629d4e0c3 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 @@ -269,6 +269,12 @@ abstract class CameraPlatform extends PlatformInterface { throw UnimplementedError('pausePreview() is not implemented.'); } + /// Sets the active camera while recording. + Future setDescriptionWhileRecording(CameraDescription description) { + throw UnimplementedError( + 'setDescriptionWhileRecording() is not implemented.'); + } + /// Returns a widget showing a live camera preview. Widget buildPreview(int cameraId) { 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 50ce9bee8531..c6bdda273da3 100644 --- a/packages/camera/camera_platform_interface/pubspec.yaml +++ b/packages/camera/camera_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/main/packages/camera/camera_ issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 # 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.3.4 +version: 2.3.5 environment: sdk: '>=2.12.0 <3.0.0' diff --git a/packages/camera/camera_platform_interface/test/method_channel/method_channel_camera_test.dart b/packages/camera/camera_platform_interface/test/method_channel/method_channel_camera_test.dart index ed6151522f0c..b01123d7cb29 100644 --- a/packages/camera/camera_platform_interface/test/method_channel/method_channel_camera_test.dart +++ b/packages/camera/camera_platform_interface/test/method_channel/method_channel_camera_test.dart @@ -576,6 +576,29 @@ void main() { ]); }); + test('Should set description while recording', () async { + // Arrange + final MethodChannelMock channel = MethodChannelMock( + channelName: 'plugins.flutter.io/camera', + methods: {'setDescriptionWhileRecording': null}, + ); + + // Act + const CameraDescription cameraDescription = CameraDescription( + name: 'Test', + lensDirection: CameraLensDirection.back, + sensorOrientation: 0); + await camera.setDescriptionWhileRecording(cameraDescription); + + // Assert + expect(channel.log, [ + isMethodCall('setDescriptionWhileRecording', + arguments: { + 'cameraName': cameraDescription.name + }), + ]); + }); + test('Should pass maxVideoDuration when starting recording a video', () async { // Arrange From 05cb60b8baaf78abc4b5c86dd6e6a7dc777f6f39 Mon Sep 17 00:00:00 2001 From: BradenBagby Date: Thu, 2 Feb 2023 09:35:48 -0700 Subject: [PATCH 2/3] changes version to 2.4 --- packages/camera/camera_platform_interface/CHANGELOG.md | 2 +- packages/camera/camera_platform_interface/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md index 7760761c8ad0..7aecb736fb37 100644 --- a/packages/camera/camera_platform_interface/CHANGELOG.md +++ b/packages/camera/camera_platform_interface/CHANGELOG.md @@ -1,4 +1,4 @@ -## 2.3.5 +## 2.4 * Allows camera to be switched while video recording. * Updates minimum Flutter version to 3.0. diff --git a/packages/camera/camera_platform_interface/pubspec.yaml b/packages/camera/camera_platform_interface/pubspec.yaml index 2f149b842b43..d3530fcd4860 100644 --- a/packages/camera/camera_platform_interface/pubspec.yaml +++ b/packages/camera/camera_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/main/packages/camera/camera_ issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 # 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.3.5 +version: 2.4 environment: sdk: '>=2.12.0 <3.0.0' From e3423dd0d970699f4617afd3a0c5d44607b3559f Mon Sep 17 00:00:00 2001 From: BradenBagby Date: Thu, 2 Feb 2023 10:31:49 -0700 Subject: [PATCH 3/3] fixes versioning --- packages/camera/camera_platform_interface/CHANGELOG.md | 2 +- packages/camera/camera_platform_interface/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md index 7aecb736fb37..b51eb9c78a43 100644 --- a/packages/camera/camera_platform_interface/CHANGELOG.md +++ b/packages/camera/camera_platform_interface/CHANGELOG.md @@ -1,4 +1,4 @@ -## 2.4 +## 2.4.0 * Allows camera to be switched while video recording. * Updates minimum Flutter version to 3.0. diff --git a/packages/camera/camera_platform_interface/pubspec.yaml b/packages/camera/camera_platform_interface/pubspec.yaml index d3530fcd4860..4cdb2855a156 100644 --- a/packages/camera/camera_platform_interface/pubspec.yaml +++ b/packages/camera/camera_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/main/packages/camera/camera_ issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 # 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.4 +version: 2.4.0 environment: sdk: '>=2.12.0 <3.0.0'