summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-05-05 01:18:39 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-05-05 01:18:39 -0700
commit4bc162998337775368584dcdf4165eff004c35e1 (patch)
tree64ebb36de2a48f89998cd76bf29c684bfffd39e7
parent0748aaa586045a489c5bfb763246c354e0dc442a (diff)
parent164a956d7aa04958df9043cc33bb0cca11bed29f (diff)
downloadandroid_packages_apps_Snap-4bc162998337775368584dcdf4165eff004c35e1.tar.gz
android_packages_apps_Snap-4bc162998337775368584dcdf4165eff004c35e1.tar.bz2
android_packages_apps_Snap-4bc162998337775368584dcdf4165eff004c35e1.zip
Merge "SnapdragonCamera: Fix preview window race condition."
-rw-r--r--src/com/android/camera/PhotoModule.java29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index e2fc34b0c..cf1de18f3 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -584,12 +584,14 @@ public class PhotoModule
if (mCameraState == PREVIEW_STOPPED) {
startPreview();
} else {
- SurfaceHolder sh = mUI.getSurfaceHolder();
- if (sh == null) {
- Log.w(TAG, "startPreview: holder for preview are not ready.");
- return;
+ synchronized (mCameraDevice) {
+ SurfaceHolder sh = mUI.getSurfaceHolder();
+ if (sh == null) {
+ Log.w(TAG, "startPreview: holder for preview are not ready.");
+ return;
+ }
+ mCameraDevice.setPreviewDisplay(sh);
}
- mCameraDevice.setPreviewDisplay(sh);
}
}
@@ -2617,15 +2619,16 @@ public class PhotoModule
return;
}
- SurfaceHolder sh = null;
- Log.v(TAG, "startPreview: SurfaceHolder (MDP path)");
- if (mUI != null) {
- sh = mUI.getSurfaceHolder();
- }
+ synchronized (mCameraDevice) {
+ SurfaceHolder sh = null;
+ Log.v(TAG, "startPreview: SurfaceHolder (MDP path)");
+ if (mUI != null) {
+ sh = mUI.getSurfaceHolder();
+ }
- setCameraParameters(UPDATE_PARAM_ALL);
- // Let UI set its expected aspect ratio
- mCameraDevice.setPreviewDisplay(sh);
+ // Let UI set its expected aspect ratio
+ mCameraDevice.setPreviewDisplay(sh);
+ }
if (!mCameraPreviewParamsReady) {
Log.w(TAG, "startPreview: parameters for preview are not ready.");