diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt b/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt index 972aa57b..53023691 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt @@ -535,7 +535,7 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan } mRecorder!!.setPreviewDisplay(mSurfaceHolder.surface) - val rotation = mActivity.getMediaRotation(mCurrCameraId) + val rotation = getVideoRotation() mInitVideoRotation = rotation mRecorder!!.setOrientationHint(rotation) @@ -565,10 +565,15 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan return mIsRecording } + private fun getVideoRotation(): Int { + val deviceRot = MainActivity.mOrientation.compensateDeviceRotation(mCurrCameraId) + val previewRot = mActivity.getPreviewRotation(mCurrCameraId) + return (deviceRot + previewRot) % 360 + } + private fun startRecording() { - if (mInitVideoRotation != mActivity.getFinalRotation(mCurrCameraId, MainActivity.mOrientation)) { - cleanupRecorder() - initRecorder() + if (mInitVideoRotation != getVideoRotation()) { + } try { diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/extensions/activity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/extensions/activity.kt index f8941b38..9a0d442f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/extensions/activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/extensions/activity.kt @@ -19,20 +19,6 @@ fun Activity.getPreviewRotation(cameraId: Int): Int { return result % 360 } -fun Activity.getMediaRotation(cameraId: Int): Int { - val degrees = getDeviceRotationDegrees() - val info = getCameraInfo(cameraId) - return if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { - (360 + info.orientation + degrees) % 360 - } else - (360 + info.orientation - degrees) % 360 -} - -fun Activity.getFinalRotation(currCameraId: Int, deviceOrientation: Int): Int { - var rotation = getMediaRotation(currCameraId) - return rotation % 360 -} - fun Activity.getDeviceRotationDegrees() = when (windowManager.defaultDisplay.rotation) { Surface.ROTATION_90 -> 90 Surface.ROTATION_180 -> 180