diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-10-24 13:31:56 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-10-24 13:31:56 -0700 |
commit | 27eb0de204b6a18d437ae42e48acc0c62cd94b87 (patch) | |
tree | ee24554bffaf8123d83d312c7923647ff4725e26 | |
parent | 3ac11753cf9777b56e6a993d1d84667ff654d61e (diff) | |
parent | 2322edc10db67d084edf03bb6b522911f2893318 (diff) | |
download | android_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.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/PanoCaptureUI.java | 4 | ||||
-rw-r--r-- | src/com/android/camera/ui/PanoCaptureProcessView.java | 7 |
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); |