From cb1704cf036e12d972f1f9a2c37adb9113f85067 Mon Sep 17 00:00:00 2001 From: Danny Baumann Date: Wed, 30 Nov 2016 10:40:29 +0100 Subject: Initialize focus manager in onResume(). Since commit 87b4a40d588a7ae8a61cb353c4cff8df37f7b483 moved camera initialization (and focus manager initialization with it) to a background thread, the focus manager initialization now races against the onPreviewRectChanged() call triggered by SurfaceView initialization in the main thread, potentially leaving the focus manager in an uninitialized state that prevented taking pictures. Change-Id: I8cf650d6a67768acd131b3cddad175ed198e0838 --- src/com/android/camera/PhotoModule.java | 1 + src/com/android/camera/VideoModule.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 9b1e22db4..18a315fd0 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -2691,6 +2691,7 @@ public class PhotoModule @Override public void onResumeBeforeSuper() { mPaused = false; + if (mFocusManager == null) initializeFocusManager(); } private void openCamera() { diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 8d438ee74..5487bcf9d 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -1227,6 +1227,7 @@ public class VideoModule implements CameraModule, @Override public void onResumeBeforeSuper() { mPaused = false; + if (mFocusManager == null) initializeFocusManager(); } @Override -- cgit v1.2.3