summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2013-03-12 10:42:56 -0700
committerMichael Kolb <kolby@google.com>2013-03-12 10:42:56 -0700
commitb7e9fe88792cb2329bedb8af770236799177d44b (patch)
treeafd73397dc8ed20f58b91fdbca220046282cf706
parentf39d8a0ce4081403cdc113f6d0f351a0b4756c45 (diff)
downloadandroid_packages_apps_Snap-b7e9fe88792cb2329bedb8af770236799177d44b.tar.gz
android_packages_apps_Snap-b7e9fe88792cb2329bedb8af770236799177d44b.tar.bz2
android_packages_apps_Snap-b7e9fe88792cb2329bedb8af770236799177d44b.zip
Open camera only once in Video module
Bug: 8272736 Change-Id: Id28fde5da62083651627dc8c734e818afe22a6e0
-rw-r--r--src/com/android/camera/VideoModule.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 1ecc4405d..a168372d1 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -128,6 +128,8 @@ public class VideoModule implements CameraModule,
private int mCameraId;
private Parameters mParameters;
+ private Boolean mCameraOpened = false;
+
private boolean mSnapshotInProgress = false;
private static final String EFFECT_BG_FROM_GALLERY = "gallery";
@@ -257,7 +259,12 @@ public class VideoModule implements CameraModule,
private void openCamera() {
try {
- mActivity.mCameraDevice = Util.openCamera(mActivity, mCameraId);
+ synchronized(mCameraOpened) {
+ if (!mCameraOpened) {
+ mActivity.mCameraDevice = Util.openCamera(mActivity, mCameraId);
+ mCameraOpened = true;
+ }
+ }
mParameters = mActivity.mCameraDevice.getParameters();
} catch (CameraHardwareException e) {
mActivity.mOpenCameraFail = true;
@@ -986,7 +993,12 @@ public class VideoModule implements CameraModule,
if (closeEffectsAlso) closeEffects();
mActivity.mCameraDevice.setZoomChangeListener(null);
mActivity.mCameraDevice.setErrorCallback(null);
- CameraHolder.instance().release();
+ synchronized(mCameraOpened) {
+ if (mCameraOpened) {
+ CameraHolder.instance().release();
+ }
+ mCameraOpened = false;
+ }
mActivity.mCameraDevice = null;
mPreviewing = false;
mSnapshotInProgress = false;