summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PhotoModule.java
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2013-03-25 23:11:43 -0700
committerAngus Kong <shkong@google.com>2013-03-27 12:58:38 -0700
commitdcb0ef1d6eacdd7d18a6881ae75f67c9851a858c (patch)
treee38c8b746075db3293bfc2340bfb6f5a9e7ac372 /src/com/android/camera/PhotoModule.java
parent0d00a8907096b9970ac64f52abbd2bfc1ed751b6 (diff)
downloadandroid_packages_apps_Snap-dcb0ef1d6eacdd7d18a6881ae75f67c9851a858c.tar.gz
android_packages_apps_Snap-dcb0ef1d6eacdd7d18a6881ae75f67c9851a858c.tar.bz2
android_packages_apps_Snap-dcb0ef1d6eacdd7d18a6881ae75f67c9851a858c.zip
Make camera calls asynchronous
bug:8438047 Change-Id: I151d5ff85f0fb3646432a64b5841256a1448f101
Diffstat (limited to 'src/com/android/camera/PhotoModule.java')
-rw-r--r--src/com/android/camera/PhotoModule.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index ff2faf790..c7301bdc9 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -173,6 +173,13 @@ public class PhotoModule
}
};
+ private Runnable mFlashRunnable = new Runnable() {
+ @Override
+ public void run() {
+ animateFlash();
+ }
+ };
+
private final StringBuilder mBuilder = new StringBuilder();
private final Formatter mFormatter = new Formatter(mBuilder);
private final Object[] mFormatterArgs = new Object[1];
@@ -205,7 +212,6 @@ public class PhotoModule
private LocationManager mLocationManager;
- private final ShutterCallback mShutterCallback = new ShutterCallback();
private final PostViewPictureCallback mPostViewPictureCallback =
new PostViewPictureCallback();
private final RawPictureCallback mRawPictureCallback =
@@ -721,11 +727,21 @@ public class PhotoModule
private final class ShutterCallback
implements android.hardware.Camera.ShutterCallback {
+
+ private boolean mAnimateFlash;
+
+ public ShutterCallback(boolean animateFlash) {
+ mAnimateFlash = animateFlash;
+ }
+
@Override
public void onShutter() {
mShutterCallbackTime = System.currentTimeMillis();
mShutterLag = mShutterCallbackTime - mCaptureStartTime;
Log.v(TAG, "mShutterLag = " + mShutterLag + "ms");
+ if (mAnimateFlash) {
+ mActivity.runOnUiThread(mFlashRunnable);
+ }
}
}
@@ -988,13 +1004,10 @@ public class PhotoModule
Util.setGpsParameters(mParameters, loc);
mCameraDevice.setParameters(mParameters);
- mCameraDevice.takePicture2(mShutterCallback, mRawPictureCallback,
- mPostViewPictureCallback, new JpegPictureCallback(loc),
- mCameraState, mFocusManager.getFocusState());
-
- if (!animateBefore) {
- animateFlash();
- }
+ mCameraDevice.takePicture2(new ShutterCallback(!animateBefore),
+ mRawPictureCallback, mPostViewPictureCallback,
+ new JpegPictureCallback(loc), mCameraState,
+ mFocusManager.getFocusState());
mNamedImages.nameNewImage(mContentResolver, mCaptureStartTime);