[camera_platform_interface] Add torch definition to the FlashModes enum (#3326)
* Fix formatting issues
* Make sure torch value is serialized correctly
diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md
index 500e8d6..ea9821e 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 bc836b0..3bf996f 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 @@
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 c398e9e..6f96079 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 @@
throw UnimplementedError('resumeVideoRecording() is not implemented.');
}
- /// Sets the flash mode for taking pictures.
+ /// Sets the flash mode for the selected camera.
Future<void> 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 6ed92e4..7feb59c 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 @@
/// 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 9349c55..8cb643e 100644
--- a/packages/camera/camera_platform_interface/pubspec.yaml
+++ b/packages/camera/camera_platform_interface/pubspec.yaml
@@ -3,7 +3,7 @@
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 59726ac..c9df641 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: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 @@
expect(values[0], FlashMode.off);
expect(values[1], FlashMode.auto);
expect(values[2], FlashMode.always);
+ expect(values[3], FlashMode.torch);
});
}