diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md index 500e8d67a6e4..ea9821e841f9 100644 --- a/packages/camera/camera_platform_interface/CHANGELOG.md +++ b/packages/camera/camera_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +- Added the torch option to the FlashMode enum, which when implemented indicates the flash light should be turned on continuously. + ## 1.0.3 - Update Flutter SDK constraint. 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 bc836b0ac98e..3bf996fedb19 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 @@ -226,6 +226,8 @@ class MethodChannelCamera extends CameraPlatform { return 'auto'; case FlashMode.always: return 'always'; + case FlashMode.torch: + return 'torch'; default: throw ArgumentError('Unknown FlashMode value'); } 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 c398e9e9ef17..6f96079dc55c 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 @@ -108,7 +108,7 @@ abstract class CameraPlatform extends PlatformInterface { throw UnimplementedError('resumeVideoRecording() is not implemented.'); } - /// Sets the flash mode for taking pictures. + /// Sets the flash mode for the selected camera. Future setFlashMode(int cameraId, FlashMode mode) { throw UnimplementedError('setFlashMode() is not implemented.'); } diff --git a/packages/camera/camera_platform_interface/lib/src/types/flash_mode.dart b/packages/camera/camera_platform_interface/lib/src/types/flash_mode.dart index 6ed92e4801eb..7feb59caeab8 100644 --- a/packages/camera/camera_platform_interface/lib/src/types/flash_mode.dart +++ b/packages/camera/camera_platform_interface/lib/src/types/flash_mode.dart @@ -12,4 +12,7 @@ enum FlashMode { /// Always use the flash when taking a picture. always, + + /// Turns on the flash light and keeps it on until switched off. + torch, } diff --git a/packages/camera/camera_platform_interface/pubspec.yaml b/packages/camera/camera_platform_interface/pubspec.yaml index 9349c5536ff2..8cb643e84ca6 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: 1.0.3 +version: 1.0.4 dependencies: flutter: diff --git a/packages/camera/camera_platform_interface/test/types/flash_mode_test.dart b/packages/camera/camera_platform_interface/test/types/flash_mode_test.dart index 59726acf7873..c9df64152cef 100644 --- a/packages/camera/camera_platform_interface/test/types/flash_mode_test.dart +++ b/packages/camera/camera_platform_interface/test/types/flash_mode_test.dart @@ -6,10 +6,10 @@ import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { - test('FlashMode should contain 3 options', () { + test('FlashMode should contain 4 options', () { final values = FlashMode.values; - expect(values.length, 3); + expect(values.length, 4); }); test("FlashMode enum should have items in correct index", () { @@ -18,5 +18,6 @@ void main() { expect(values[0], FlashMode.off); expect(values[1], FlashMode.auto); expect(values[2], FlashMode.always); + expect(values[3], FlashMode.torch); }); }