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(); } }