From caf872d2ce14e20822b53bbcba5b198ac8bd0098 Mon Sep 17 00:00:00 2001 From: Matthew Clark Date: Sun, 10 Feb 2019 01:38:28 -0600 Subject: [PATCH 1/3] update enum/dart side --- packages/camera/lib/camera.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/camera/lib/camera.dart b/packages/camera/lib/camera.dart index 2a484b9e1c17..b2d47a4ee6b0 100644 --- a/packages/camera/lib/camera.dart +++ b/packages/camera/lib/camera.dart @@ -14,7 +14,7 @@ final MethodChannel _channel = const MethodChannel('plugins.flutter.io/camera'); enum CameraLensDirection { front, back, external } -enum ResolutionPreset { low, medium, high } +enum ResolutionPreset { low, medium, high, fourk } typedef onLatestImageAvailable = Function(CameraImage image); @@ -27,6 +27,8 @@ String serializeResolutionPreset(ResolutionPreset resolutionPreset) { return 'medium'; case ResolutionPreset.low: return 'low'; + case ResolutionPreset.fourk: + return '4k'; } throw ArgumentError('Unknown ResolutionPreset value'); } From b224c254b7540b92c315b4c788a473839ecb9f82 Mon Sep 17 00:00:00 2001 From: Matthew Clark Date: Sun, 10 Feb 2019 01:43:56 -0600 Subject: [PATCH 2/3] update ios side --- packages/camera/ios/Classes/CameraPlugin.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/camera/ios/Classes/CameraPlugin.m b/packages/camera/ios/Classes/CameraPlugin.m index d54b55e1060f..e60cc7e39839 100644 --- a/packages/camera/ios/Classes/CameraPlugin.m +++ b/packages/camera/ios/Classes/CameraPlugin.m @@ -174,7 +174,10 @@ - (instancetype)initWithCameraName:(NSString *)cameraName NSAssert(self, @"super init cannot be nil"); _captureSession = [[AVCaptureSession alloc] init]; AVCaptureSessionPreset preset; - if ([resolutionPreset isEqualToString:@"high"]) { + if ([resolutionPreset isEqualToString:@"4k"]) { + preset = AVCaptureSessionPreset3840x2160; + _previewSize = CGSizeMake(3840, 2160); + } else if ([resolutionPreset isEqualToString:@"high"]) { preset = AVCaptureSessionPreset1280x720; _previewSize = CGSizeMake(1280, 720); } else if ([resolutionPreset isEqualToString:@"medium"]) { From 9239ee075bb5e81e5ce36bc278b8d4a0df0e8af4 Mon Sep 17 00:00:00 2001 From: Matthew Clark Date: Sun, 10 Feb 2019 01:45:54 -0600 Subject: [PATCH 3/3] update android side --- .../src/main/java/io/flutter/plugins/camera/CameraPlugin.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/camera/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java b/packages/camera/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java index 00c1862ca1fd..c963f53ca0b7 100644 --- a/packages/camera/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java +++ b/packages/camera/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java @@ -294,6 +294,9 @@ private class Camera { try { Size minPreviewSize; switch (resolutionPreset) { + case "4k": + minPreviewSize = new Size(3840, 2160); + break; case "high": minPreviewSize = new Size(1024, 768); break;