diff options
author | Santhosh Kumar H E <skhara@codeaurora.org> | 2014-12-03 15:33:56 +0530 |
---|---|---|
committer | Arne Coucheron <arco68@gmail.com> | 2018-01-27 00:41:42 +0100 |
commit | a465b967e9d056d4084533e54f187a38d8bc98af (patch) | |
tree | 1e481fa5662a1e134bf2565c4df661c672da8b71 /src/com | |
parent | ef0ff9cd24700d5f0c6e16a648e95a9832956a8d (diff) | |
download | android_packages_apps_Snap-a465b967e9d056d4084533e54f187a38d8bc98af.tar.gz android_packages_apps_Snap-a465b967e9d056d4084533e54f187a38d8bc98af.tar.bz2 android_packages_apps_Snap-a465b967e9d056d4084533e54f187a38d8bc98af.zip |
Initialize focus overlay manager if it is not initialized.
Camera open thread initializes the focus overlay manager
after opening camera. In a rare scenario above background
thread had not initialized focus overlay manager by the
time UI thread start acessesing it, so we see a crash.
Initialize focus overlay manager from UI thread if it is
not initialized already.
Change-Id: I1635c8759d0e0647fe61fe975a0cc24df40df529
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 98f8dcfb3..f48dca80a 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -2926,9 +2926,13 @@ public class PhotoModule mMirror = (info.facing == CameraInfo.CAMERA_FACING_FRONT); String[] defaultFocusModes = mActivity.getResources().getStringArray( R.array.pref_camera_focusmode_default_array); - mFocusManager = new FocusOverlayManager(mPreferences, defaultFocusModes, - mInitialParams, this, mMirror, - mActivity.getMainLooper(), mUI); + synchronized (this){ + if (mFocusManager == null) { + mFocusManager = new FocusOverlayManager(mPreferences, defaultFocusModes, + mInitialParams, this, mMirror, + mActivity.getMainLooper(), mUI); + } + } } } @@ -3203,6 +3207,8 @@ public class PhotoModule mRestartPreview = false; } + if (mFocusManager == null) initializeFocusManager(); + if (!mSnapshotOnIdle) { mFocusManager.setAeAwbLock(false); // Unlock AE and AWB. } |