summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/VideoCamera.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/VideoCamera.java')
-rw-r--r--src/com/android/camera/VideoCamera.java34
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();
+ }
}
}
}