From ca7f2e70dde9fd85b54307b7e8d099833957e1c3 Mon Sep 17 00:00:00 2001 From: Ali EP Date: Sat, 23 Feb 2019 09:28:17 +0330 Subject: [PATCH 1/3] Fixes #28350 Adds sensorOrientation --- .../main/java/io/flutter/plugins/camera/CameraPlugin.java | 3 +++ packages/camera/lib/camera.dart | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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 8cdc95e19790..7ab3c44f962a 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 @@ -164,6 +164,9 @@ public void onMethodCall(MethodCall call, final Result result) { cameraManager.getCameraCharacteristics(cameraName); details.put("name", cameraName); @SuppressWarnings("ConstantConditions") + int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); + details.put("sensorOrientation", sensorOrientation); + int lensFacing = characteristics.get(CameraCharacteristics.LENS_FACING); switch (lensFacing) { case CameraMetadata.LENS_FACING_FRONT: diff --git a/packages/camera/lib/camera.dart b/packages/camera/lib/camera.dart index cf636a199b1f..d99cb8b7a755 100644 --- a/packages/camera/lib/camera.dart +++ b/packages/camera/lib/camera.dart @@ -58,6 +58,7 @@ Future> availableCameras() async { return CameraDescription( name: camera['name'], lensDirection: _parseCameraLensDirection(camera['lensFacing']), + sensorOrientation: camera['sensorOrientation'], ); }).toList(); } on PlatformException catch (e) { @@ -66,10 +67,11 @@ Future> availableCameras() async { } class CameraDescription { - CameraDescription({this.name, this.lensDirection}); + CameraDescription({this.name, this.lensDirection, this.sensorOrientation}); final String name; final CameraLensDirection lensDirection; + final int sensorOrientation; @override bool operator ==(Object o) { @@ -85,7 +87,7 @@ class CameraDescription { @override String toString() { - return '$runtimeType($name, $lensDirection)'; + return '$runtimeType($name, $lensDirection, $sensorOrientation)'; } } From 286ee0122fee694eff0379286c3fdf5924ce04cc Mon Sep 17 00:00:00 2001 From: Maurice Parrish Date: Wed, 6 Mar 2019 11:39:29 -0800 Subject: [PATCH 2/3] Add sensor value for iOS and added comments --- packages/camera/ios/Classes/CameraPlugin.m | 1 + packages/camera/lib/camera.dart | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/packages/camera/ios/Classes/CameraPlugin.m b/packages/camera/ios/Classes/CameraPlugin.m index 81e0d18df845..7653f12eec38 100644 --- a/packages/camera/ios/Classes/CameraPlugin.m +++ b/packages/camera/ios/Classes/CameraPlugin.m @@ -653,6 +653,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result [reply addObject:@{ @"name" : [device uniqueID], @"lensFacing" : lensFacing, + @"sensorOrientation" : @90, }]; } result(reply); diff --git a/packages/camera/lib/camera.dart b/packages/camera/lib/camera.dart index d99cb8b7a755..090e7767c95c 100644 --- a/packages/camera/lib/camera.dart +++ b/packages/camera/lib/camera.dart @@ -71,6 +71,14 @@ class CameraDescription { final String name; final CameraLensDirection lensDirection; + + /// Clockwise angle through which the output image needs to be rotated to be upright on the device screen in its native orientation. + /// + /// **Range of valid values:** + /// 0, 90, 180, 270 + /// + /// On Android, also defines the direction of rolling shutter readout, which + /// is from top to bottom in the sensor's coordinate system. final int sensorOrientation; @override From d3fff09f779ddccbdfb5eeaf92c33fb96d3d7c82 Mon Sep 17 00:00:00 2001 From: Maurice Parrish Date: Wed, 6 Mar 2019 11:40:49 -0800 Subject: [PATCH 3/3] Version bump --- packages/camera/CHANGELOG.md | 4 ++++ packages/camera/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index c29670baaae0..3f8950a893d5 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.1 + +* Add sensor orientation value to `CameraDescription`. + ## 0.4.0+3 * Fixed a crash when the plugin is registered by a background FlutterView. diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml index dcbff327f044..831ad8601128 100644 --- a/packages/camera/pubspec.yaml +++ b/packages/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.4.0+3 +version: 0.4.1 authors: - Flutter Team - Luigi Agosti