From c071c830f2c72cfa15d5ff254e9ff038a3e1e9e6 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 6883a3624..aaa7ca77b 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -2484,6 +2484,7 @@ public class PhotoModule extends BaseModule implements @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 86cf1d845..ea78bb42a 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -1239,6 +1239,7 @@ public class VideoModule extends BaseModule implements @Override public void onResumeBeforeSuper() { mPaused = false; + if (mFocusManager == null) initializeFocusManager(); } @Override -- cgit v1.2.3