summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java')
-rw-r--r--src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java b/src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java
index c980f9464..a4e63e7e3 100644
--- a/src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java
+++ b/src/com/android/camera/captureintent/resource/ResourceSurfaceTextureImpl.java
@@ -96,7 +96,20 @@ public class ResourceSurfaceTextureImpl implements ResourceSurfaceTexture {
@Override
public void setPreviewSize(Size previewSize) {
// Update preview transform when preview stream size is changed.
- mPreviewSize = previewSize;
+ if (!mPreviewSize.equals(previewSize)) {
+ mPreviewSize = previewSize;
+
+ /**
+ * Update transform here since preview size might change when
+ * switching between back and front camera.
+ */
+ mResourceConstructed.get().getMainThread().execute(new Runnable() {
+ @Override
+ public void run() {
+ updatePreviewTransform();
+ }
+ });
+ }
// Update surface texture's default buffer size. See b/17286155.
mSurfaceTexture.setDefaultBufferSize(mPreviewSize.width(), mPreviewSize.height());
@@ -124,10 +137,15 @@ public class ResourceSurfaceTextureImpl implements ResourceSurfaceTexture {
@Override
public void updatePreviewTransform() {
MainThread.checkMainThread();
- if (mPreviewSize.getWidth() == 0 || mPreviewSize.getHeight() == 0 ||
- mPreviewLayoutSize.getWidth() == 0 || mPreviewLayoutSize.getHeight() == 0) {
+ if (mPreviewSize.getWidth() == 0 || mPreviewSize.getHeight() == 0) {
+ Log.w(TAG, "Do nothing since mPreviewSize is 0");
+ return;
+ }
+ if (mPreviewLayoutSize.getWidth() == 0 || mPreviewLayoutSize.getHeight() == 0) {
+ Log.w(TAG, "Do nothing since mPreviewLayoutSize is 0");
return;
}
+
Matrix transformMatrix = mPreviewTransformCalculator.toTransformMatrix(
mPreviewLayoutSize, mPreviewSize);
mResourceConstructed.get().getModuleUI().updatePreviewTransform(transformMatrix);