summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSanthosh Kumar H E <skhara@codeaurora.org>2014-12-03 15:33:56 +0530
committerMichael Bestas <mikeioannina@gmail.com>2015-08-29 04:15:51 +0300
commit27384ba0f0cb95118f53766f119508237abd6cdd (patch)
treeb4efd22c2dda7fa8e26f14cff548dbb157ffef4b /src
parentb3fc9fbab80e0191950cc4ffad5b626dc22dc8c3 (diff)
downloadandroid_packages_apps_Snap-27384ba0f0cb95118f53766f119508237abd6cdd.tar.gz
android_packages_apps_Snap-27384ba0f0cb95118f53766f119508237abd6cdd.tar.bz2
android_packages_apps_Snap-27384ba0f0cb95118f53766f119508237abd6cdd.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')
-rw-r--r--src/com/android/camera/PhotoModule.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 4d311bad3..da6278d08 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2369,9 +2369,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);
+ }
+ }
}
}
@@ -2651,6 +2655,8 @@ public class PhotoModule
stopPreview();
}
+ if (mFocusManager == null) initializeFocusManager();
+
if (!mSnapshotOnIdle) {
mFocusManager.setAeAwbLock(false); // Unlock AE and AWB.
}