OSDN Git Service

[CaptureIntentModule] Dont' dispatch startPreview call
authorSenpo Hu <senpo@google.com>
Thu, 26 Feb 2015 21:57:13 +0000 (13:57 -0800)
committerSenpo Hu <senpo@google.com>
Thu, 26 Feb 2015 22:06:04 +0000 (14:06 -0800)
it will result in race condition.

Bug: 19522251
Bug: 19522250
Change-Id: I078ed51a92ae54dd064a00e376e3e151523eb361

src/com/android/camera/captureintent/state/StateStartingPreview.java

index bb2ed5a..445a4ff 100644 (file)
@@ -101,11 +101,13 @@ public final class StateStartingPreview extends State {
             @Override
             public void run() {
                 mResourceSurfaceTexture.get().setPreviewSize(previewSize);
-                mResourceOpenedCamera.get().startPreview(
-                        mResourceSurfaceTexture.get().createPreviewSurface(),
-                        mCaptureReadyCallback);
             }
         });
+        // Start preview right away. Don't dispatch it on other threads or it
+        // will cause race condition. b/19522251.
+        mResourceOpenedCamera.get().startPreview(
+                mResourceSurfaceTexture.get().createPreviewSurface(),
+                mCaptureReadyCallback);
         return Optional.absent();
     }