From 8ace4fa7cbde0d995324b878726d9e8589606eed Mon Sep 17 00:00:00 2001 From: Radu Popovici Date: Thu, 18 Feb 2016 18:10:56 +0200 Subject: [PATCH] fix front camera rotation --- .../java/com/lwansbrough/RCTCamera/RCTCamera.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java index 32bfe27..a174df4 100644 --- a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java +++ b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java @@ -131,16 +131,20 @@ public class RCTCamera { } CameraInfoWrapper cameraInfo = _cameraInfos.get(type); - int rotation = cameraInfo.info.orientation; + int displayRotation; + int rotation; + int orientation = cameraInfo.info.orientation; if (cameraInfo.info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { - rotation = (720 - rotation - _actualDeviceOrientation * 90) % 360; + rotation = (orientation + _actualDeviceOrientation * 90) % 360; + displayRotation = (720 - orientation - _actualDeviceOrientation * 90) % 360; } else { - rotation = (rotation - _actualDeviceOrientation * 90 + 360) % 360; + rotation = (orientation - _actualDeviceOrientation * 90 + 360) % 360; + displayRotation = rotation; } cameraInfo.rotation = rotation; // TODO: take in account the _orientation prop - camera.setDisplayOrientation(cameraInfo.rotation); + camera.setDisplayOrientation(displayRotation); Camera.Parameters parameters = camera.getParameters(); parameters.setRotation(cameraInfo.rotation);