diff options
Diffstat (limited to 'src/com/android/camera/VideoCamera.java')
-rw-r--r-- | src/com/android/camera/VideoCamera.java | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java index cb0bb02..d617e4c 100644 --- a/src/com/android/camera/VideoCamera.java +++ b/src/com/android/camera/VideoCamera.java @@ -161,7 +161,6 @@ public class VideoCamera extends NoSearchActivity private int mMaxVideoDurationInMs; boolean mPausing = false; - boolean mSwitching; boolean mPreviewing = false; // True if preview is started. private ContentResolver mContentResolver; @@ -379,6 +378,8 @@ public class VideoCamera extends NoSearchActivity // Initialize the HeadUpDiplay after startPreview(). We need mParameters // for HeadUpDisplay and it is initialized in that function. + mHeadUpDisplay = new CamcorderHeadUpDisplay(this); + mHeadUpDisplay.setListener(new MyHeadUpDisplayListener()); initializeHeadUpDisplay(); } @@ -390,7 +391,7 @@ public class VideoCamera extends NoSearchActivity // becomes landscape. Configuration config = getResources().getConfiguration(); if (config.orientation == Configuration.ORIENTATION_LANDSCAPE - && !mPausing && !mSwitching && mGLRootView == null) { + && !mPausing && mGLRootView == null) { attachHeadUpDisplay(); } else if (mGLRootView != null) { detachHeadUpDisplay(); @@ -398,8 +399,8 @@ public class VideoCamera extends NoSearchActivity } private void initializeHeadUpDisplay() { - mHeadUpDisplay = new CamcorderHeadUpDisplay(this); - CameraSettings settings = new CameraSettings(this, mParameters); + CameraSettings settings = new CameraSettings(this, mParameters, + CameraHolder.instance().getCameraInfo()); PreferenceGroup group = settings.getPreferenceGroup(R.xml.video_preferences); @@ -407,7 +408,6 @@ public class VideoCamera extends NoSearchActivity group = filterPreferenceScreenByIntent(group); } mHeadUpDisplay.initialize(this, group); - mHeadUpDisplay.setListener(new MyHeadUpDisplayListener()); } private void attachHeadUpDisplay() { @@ -1083,20 +1083,16 @@ public class VideoCamera extends NoSearchActivity R.string.switch_camera_id) .setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { - switchCameraId(); + switchCameraId((mCameraId + 1) % mNumberOfCameras); return true; } }).setIcon(android.R.drawable.ic_menu_camera); } } - private void switchCameraId() { - mSwitching = true; - - mCameraId = (mCameraId + 1) % mNumberOfCameras; - CameraSettings.writePreferredCameraId(mPreferences, mCameraId); - - changeHeadUpDisplayState(); + private void switchCameraId(int cameraId) { + mCameraId = cameraId; + CameraSettings.writePreferredCameraId(mPreferences, cameraId); // This is similar to what mShutterButton.performClick() does, // but not quite the same. @@ -1125,9 +1121,6 @@ public class VideoCamera extends NoSearchActivity if (mSurfaceHolder != null) { mHandler.sendEmptyMessage(INIT_RECORDER); } - - mSwitching = false; - changeHeadUpDisplayState(); } private PreferenceGroup filterPreferenceScreenByIntent( @@ -1604,7 +1597,14 @@ public class VideoCamera extends NoSearchActivity // If mCameraDevice is not ready then we can set the parameter in // startPreview(). if (mCameraDevice == null) return; - resetCameraParameters(); + + // Check if camera id is changed. + int cameraId = CameraSettings.readPreferredCameraId(mPreferences); + if (mCameraId != cameraId) { + switchCameraId(cameraId); + } else { + resetCameraParameters(); + } } } } |