From e16ca8f7636ad67f64b687bee9e09781bdda7b00 Mon Sep 17 00:00:00 2001 From: Andrii Miroshnychenko Date: Tue, 5 Sep 2017 00:54:33 +0300 Subject: [PATCH] #20 Fixed bug with preview stretch on orientation change --- .../main/java/com/otaliastudios/cameraview/Camera1.java | 2 +- .../java/com/otaliastudios/cameraview/CameraView.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java b/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java index da503993..7578c031 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java @@ -449,7 +449,7 @@ class Camera1 extends CameraController { @Override boolean shouldFlipSizes() { - return mSensorOffset % 180 != 0; + return (mDeviceOrientation + mSensorOffset) % 180 != 0; } @Override diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 278bd790..9e191c4f 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -21,6 +21,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.util.Log; +import android.view.Display; import android.view.MotionEvent; import android.view.ViewGroup; import android.view.WindowManager; @@ -462,6 +463,14 @@ public class CameraView extends FrameLayout { if (checkPermissions(getSessionType())) { mIsStarted = true; + + // Update display orientation for current CameraController + WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); + Display display = manager.getDefaultDisplay(); + if (display != null) { + mOrientationHelper.enable(display); + } + mCameraController.start(); } }