summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-10-24 13:31:56 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-24 13:31:56 -0700
commit27eb0de204b6a18d437ae42e48acc0c62cd94b87 (patch)
treeee24554bffaf8123d83d312c7923647ff4725e26
parent3ac11753cf9777b56e6a993d1d84667ff654d61e (diff)
parent2322edc10db67d084edf03bb6b522911f2893318 (diff)
downloadandroid_packages_apps_Snap-27eb0de204b6a18d437ae42e48acc0c62cd94b87.tar.gz
android_packages_apps_Snap-27eb0de204b6a18d437ae42e48acc0c62cd94b87.tar.bz2
android_packages_apps_Snap-27eb0de204b6a18d437ae42e48acc0c62cd94b87.zip
Merge "SnapdragonCamera: Panorama2 fix" into camera.lnx.1.0-dev.1.0
-rw-r--r--src/com/android/camera/PanoCaptureModule.java7
-rw-r--r--src/com/android/camera/PanoCaptureUI.java4
-rw-r--r--src/com/android/camera/ui/PanoCaptureProcessView.java7
3 files changed, 13 insertions, 5 deletions
diff --git a/src/com/android/camera/PanoCaptureModule.java b/src/com/android/camera/PanoCaptureModule.java
index 7a9f7a705..f0376e679 100644
--- a/src/com/android/camera/PanoCaptureModule.java
+++ b/src/com/android/camera/PanoCaptureModule.java
@@ -116,6 +116,7 @@ public class PanoCaptureModule implements CameraModule, PhotoController {
private static final int STATE_WAITING_LOCK = 1;
private Semaphore mFocusLockSemaphore = new Semaphore(1);
private boolean mIsLockFocusAttempted = false;
+ private int mCameraSensorOrientation;
private CameraCaptureSession.CaptureCallback mCaptureCallback
= new CameraCaptureSession.CaptureCallback() {
@@ -301,7 +302,7 @@ public class PanoCaptureModule implements CameraModule, PhotoController {
if (map == null) {
return;
}
-
+ mCameraSensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);
Display display = mActivity.getWindowManager().getDefaultDisplay();
Point ds = new Point();
display.getSize(ds);
@@ -312,6 +313,10 @@ public class PanoCaptureModule implements CameraModule, PhotoController {
}
}
+ public int getCameraSensorOrientation() {
+ return mCameraSensorOrientation;
+ }
+
private Size getOutputSize(float ratio, Size[] prevSizes, int screenW, int
screenH) {
Size optimal = prevSizes[0];
diff --git a/src/com/android/camera/PanoCaptureUI.java b/src/com/android/camera/PanoCaptureUI.java
index 256647ad0..127feef84 100644
--- a/src/com/android/camera/PanoCaptureUI.java
+++ b/src/com/android/camera/PanoCaptureUI.java
@@ -337,7 +337,9 @@ public class PanoCaptureUI implements
mCameraControls.getPanoramaExitButton().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- SettingsManager.getInstance().setValueIndex(SettingsManager.KEY_SCENE_MODE, SettingsManager.SCENE_MODE_AUTO_INT);
+ try {
+ SettingsManager.getInstance().setValueIndex(SettingsManager.KEY_SCENE_MODE, SettingsManager.SCENE_MODE_AUTO_INT);
+ } catch(NullPointerException e) {}
mActivity.onModuleSelected(ModuleSwitcher.CAPTURE_MODULE_INDEX);
}
});
diff --git a/src/com/android/camera/ui/PanoCaptureProcessView.java b/src/com/android/camera/ui/PanoCaptureProcessView.java
index 724703b10..e73dc9604 100644
--- a/src/com/android/camera/ui/PanoCaptureProcessView.java
+++ b/src/com/android/camera/ui/PanoCaptureProcessView.java
@@ -917,13 +917,14 @@ public class PanoCaptureProcessView extends View implements SensorEventListener
private void rotateAndScale(Bitmap srcBitmap, Bitmap dstBitmap, float ratio) {
Canvas canvas = new Canvas(dstBitmap);
matrix.reset();
+ int sensorOrientation = mController.getCameraSensorOrientation();
if(mOrientation == 0 || mOrientation == 270) {
- matrix.postRotate((90 + mOrientation + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
+ matrix.postRotate((sensorOrientation + mOrientation + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
} else if (mOrientation == 180){
- matrix.postRotate((90 + mOrientation + 180 + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
+ matrix.postRotate((sensorOrientation + mOrientation + 180 + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
matrix.postRotate(180, srcBitmap.getHeight() / 2, srcBitmap.getWidth() / 2);
} else if(mOrientation == 90) {
- matrix.postRotate((90 + mOrientation + 180 + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
+ matrix.postRotate((sensorOrientation + mOrientation + 180 + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
matrix.postRotate(180, srcBitmap.getWidth() / 2, srcBitmap.getHeight() / 2);
}
matrix.postScale(ratio, ratio);