summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/WideAnglePanoramaController.java2
-rw-r--r--src/com/android/camera/WideAnglePanoramaModule.java7
-rw-r--r--src/com/android/camera/WideAnglePanoramaUI.java9
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);