summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CaptureModule.java26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 9d09343ea..2b28f9946 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -226,6 +226,7 @@ public class CaptureModule implements CameraModule, PhotoController,
private boolean mFirstPreviewLoaded;
private int[] mPrecaptureRequestHashCode = new int[MAX_NUM_CAM];
private int[] mLockRequestHashCode = new int[MAX_NUM_CAM];
+ private final Handler mHandler = new MainHandler();
private class MediaSaveNotifyThread extends Thread {
private Uri uri;
@@ -340,7 +341,7 @@ public class CaptureModule implements CameraModule, PhotoController,
private CameraCaptureSession.CaptureCallback mCaptureCallback
= new CameraCaptureSession.CaptureCallback() {
- private void process(CaptureResult result) {
+ private void updateState(CaptureResult result) {
int id = (int) result.getRequest().getTag();
if (!mFirstPreviewLoaded) {
@@ -420,7 +421,6 @@ public class CaptureModule implements CameraModule, PhotoController,
CaptureResult partialResult) {
int id = (int) partialResult.getRequest().getTag();
if (id == getMainCameraId()) updateFocusStateChange(partialResult);
- process(partialResult);
}
@Override
@@ -429,7 +429,7 @@ public class CaptureModule implements CameraModule, PhotoController,
TotalCaptureResult result) {
int id = (int) result.getRequest().getTag();
if (id == getMainCameraId()) updateFocusStateChange(result);
- process(result);
+ updateState(result);
}
};
@@ -1438,7 +1438,12 @@ public class CaptureModule implements CameraModule, PhotoController,
initializeSecondTime();
}
mUI.reInitUI();
- mActivity.updateStorageSpaceAndHint();
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ mActivity.updateStorageSpaceAndHint();
+ }
+ });
estimateJpegFileSize();
mUI.enableShutter(true);
}
@@ -2117,7 +2122,8 @@ public class CaptureModule implements CameraModule, PhotoController,
}
private void updateFocusStateChange(CaptureResult result) {
- final int resultAFState = result.get(CaptureResult.CONTROL_AF_STATE);
+ final Integer resultAFState = result.get(CaptureResult.CONTROL_AF_STATE);
+ if (resultAFState == null) return;
// Report state change when AF state has changed.
if (resultAFState != mLastResultAFState && mFocusStateListener != null) {
@@ -2335,4 +2341,14 @@ public class CaptureModule implements CameraModule, PhotoController,
unlockFocus(BAYER_ID);
unlockFocus(MONO_ID);
}
+
+ /**
+ * This Handler is used to post message back onto the main thread of the
+ * application
+ */
+ private class MainHandler extends Handler {
+ public MainHandler() {
+ super(Looper.getMainLooper());
+ }
+ }
}