summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/VideoModule.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r--src/com/android/camera/VideoModule.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 2c654fc29..2eb3d1bad 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -583,6 +583,11 @@ public class VideoModule implements CameraModule,
// back to use SurfaceTexture for preview and we need to stop then start
// the preview. This will cause the preview flicker since the preview
// will not be continuous for a short period of time.
+
+ // Get orientation directly from display rotation to make sure it's up
+ // to date. OnConfigurationChanged callback usually kicks in a bit later, if
+ // device is rotated during recording.
+ mDisplayRotation = Util.getDisplayRotation(mActivity);
((CameraScreenNail) mActivity.mCameraScreenNail).animateCapture(mDisplayRotation);
mUI.enablePreviewThumb(true);
@@ -1537,7 +1542,9 @@ public class VideoModule implements CameraModule,
mUI.enableCameraControls(false);
mMediaRecorderRecording = true;
- mActivity.getOrientationManager().lockOrientation();
+ if (!Util.systemRotationLocked(mActivity)) {
+ mActivity.getOrientationManager().lockOrientation();
+ }
mRecordingStartTime = SystemClock.uptimeMillis();
mUI.showRecordingUI(true, mParameters.isZoomSupported());
@@ -1612,7 +1619,9 @@ public class VideoModule implements CameraModule,
fail = true;
}
mMediaRecorderRecording = false;
- mActivity.getOrientationManager().unlockOrientation();
+ if (!Util.systemRotationLocked(mActivity)) {
+ mActivity.getOrientationManager().unlockOrientation();
+ }
// If the activity is paused, this means activity is interrupted
// during recording. Release the camera as soon as possible because