From a346e5d7c9caa9a44431dcf1cfafe300768ab076 Mon Sep 17 00:00:00 2001 From: Angus Kong Date: Tue, 25 Jun 2013 11:12:16 -0700 Subject: Synchronize camera access in start preview thread. Change-Id: Iba953fea3bd17ecb085d75fb3b2e350c0bf5d3b1 --- src/com/android/camera/VideoModule.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 839037fc0..0daa67246 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -394,12 +394,6 @@ public class VideoModule implements CameraModule, readVideoPreferences(); mUI.setPrefChangedListener(this); - new Thread(new Runnable() { - @Override - public void run() { - startPreview(); - } - }).start(); mQuickCapture = mActivity.getIntent().getBooleanExtra(EXTRA_QUICK_CAPTURE, false); mLocationManager = new LocationManager(mActivity, null); @@ -761,7 +755,11 @@ public class VideoModule implements CameraModule, new Thread(new Runnable() { @Override public void run() { - startPreview(); + synchronized (mCameraOpened) { + if (mCameraOpened) { + startPreview(); + } + } } }).start(); } else { @@ -931,8 +929,8 @@ public class VideoModule implements CameraModule, CameraHolder.instance().release(); } mCameraOpened = false; + mCameraDevice = null; } - mCameraDevice = null; mPreviewing = false; mSnapshotInProgress = false; } -- cgit v1.2.3