From aa67d847edf7de3741bac6fb40cd94b8c838d0ae Mon Sep 17 00:00:00 2001 From: Doris Liu Date: Fri, 18 Oct 2013 17:15:30 -0700 Subject: [PATCH] Fix SRI orientation on manta Bug: 11292213 Change-Id: I7977de4c5bb906eec5431e706e28118837a682e7 --- src/com/android/camera/WideAnglePanoramaController.java | 2 ++ src/com/android/camera/WideAnglePanoramaModule.java | 7 +++++++ src/com/android/camera/WideAnglePanoramaUI.java | 9 +++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/android/camera/WideAnglePanoramaController.java b/src/com/android/camera/WideAnglePanoramaController.java index 6ac7c511d..d711c0942 100644 --- a/src/com/android/camera/WideAnglePanoramaController.java +++ b/src/com/android/camera/WideAnglePanoramaController.java @@ -30,4 +30,6 @@ public interface WideAnglePanoramaController { public void onShutterButtonClick(); public void onPreviewUILayoutChange(int l, int t, int r, int b); + + public int getCameraOrientation(); } diff --git a/src/com/android/camera/WideAnglePanoramaModule.java b/src/com/android/camera/WideAnglePanoramaModule.java index aa66bdcd3..a08aa66ec 100644 --- a/src/com/android/camera/WideAnglePanoramaModule.java +++ b/src/com/android/camera/WideAnglePanoramaModule.java @@ -647,6 +647,13 @@ public class WideAnglePanoramaModule return orientation; } + /** The orientation of the camera image. The value is the angle that the camera + * image needs to be rotated clockwise so it shows correctly on the display + * in its natural orientation. It should be 0, 90, 180, or 270.*/ + public int getCameraOrientation() { + return mCameraOrientation; + } + public void saveHighResMosaic() { runBackgroundThread(new Thread() { @Override diff --git a/src/com/android/camera/WideAnglePanoramaUI.java b/src/com/android/camera/WideAnglePanoramaUI.java index da49638cc..2a47d233e 100644 --- a/src/com/android/camera/WideAnglePanoramaUI.java +++ b/src/com/android/camera/WideAnglePanoramaUI.java @@ -431,8 +431,13 @@ public class WideAnglePanoramaUI implements } public void flipPreviewIfNeeded() { - if (CameraUtil.getDisplayRotation(mActivity) >= 180) { - // In either reverse landscape or reverse portrait + // Rotation needed to display image correctly clockwise + int cameraOrientation = mController.getCameraOrientation(); + // Display rotated counter-clockwise + int displayRotation = CameraUtil.getDisplayRotation(mActivity); + // Rotation needed to display image correctly on current display + int rotation = (cameraOrientation - displayRotation + 360) % 360; + if (rotation >= 180) { mTextureView.setRotation(180); } else { mTextureView.setRotation(0); -- 2.11.0