diff options
author | Michael Kolb <kolby@google.com> | 2013-03-12 10:42:56 -0700 |
---|---|---|
committer | Michael Kolb <kolby@google.com> | 2013-03-12 10:42:56 -0700 |
commit | b7e9fe88792cb2329bedb8af770236799177d44b (patch) | |
tree | afd73397dc8ed20f58b91fdbca220046282cf706 | |
parent | f39d8a0ce4081403cdc113f6d0f351a0b4756c45 (diff) | |
download | android_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.java | 16 |
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; |