Fix photo mode is getting stuck in a single CameraState.
Bug: 11574716
Change-Id: Ieb3622103798077071bb9350773851b7acbff756
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index ce0deed..347244e 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -350,7 +350,6 @@
}
startPreview();
- mHandler.sendEmptyMessage(CAMERA_PREVIEW_DONE);
break;
}
@@ -1566,12 +1565,8 @@
startPreview();
}
+ /** This can run on a background thread, post any view updates to MainHandler. */
private void startPreview() {
- if (mCameraState != PREVIEW_STOPPED) {
- Log.v(TAG, "Already previewing");
- return;
- }
-
if (mPaused || mCameraDevice == null) {
return;
}
@@ -1592,6 +1587,12 @@
return;
}
mCameraDevice.setErrorCallback(mErrorCallback);
+ // ICS camera frameworks has a bug. Face detection state is not cleared 1589
+ // after taking a picture. Stop the preview to work around it. The bug
+ // was fixed in JB.
+ if (mCameraState != PREVIEW_STOPPED) {
+ stopPreview();
+ }
setDisplayOrientation();
@@ -1618,6 +1619,7 @@
if (mSnapshotOnIdle) {
mHandler.post(mDoSnapRunnable);
}
+ mHandler.sendEmptyMessage(CAMERA_PREVIEW_DONE);
}
}