diff options
Diffstat (limited to 'src/com/android/camera/PhotoModule.java')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 55 |
1 files changed, 17 insertions, 38 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 89833b3b5..a61c2676e 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -65,13 +65,13 @@ import com.android.camera.CameraManager.CameraAFMoveCallback; import com.android.camera.CameraManager.CameraPictureCallback; import com.android.camera.CameraManager.CameraProxy; import com.android.camera.CameraManager.CameraShutterCallback; -import com.android.camera.support.common.ApiHelper; import com.android.camera.support.filtershow.crop.CropExtras; import com.android.camera.ui.CountDownView.OnCountDownFinishedListener; import com.android.camera.ui.PopupManager; import com.android.camera.ui.RotateTextToast; import com.android.camera.util.UsageStatistics; import com.android.camera2.R; +import com.android.gallery3d.common.ApiHelper; import com.android.gallery3d.exif.ExifInterface; import com.android.gallery3d.exif.ExifTag; import com.android.gallery3d.exif.Rational; @@ -103,7 +103,6 @@ public class PhotoModule private static final int START_PREVIEW_DONE = 10; private static final int OPEN_CAMERA_FAIL = 11; private static final int CAMERA_DISABLED = 12; - private static final int CAPTURE_ANIMATION_DONE = 13; // The subset of parameters we need to update in setCameraParameters(). private static final int UPDATE_PARAM_INITIALIZE = 1; @@ -170,13 +169,6 @@ 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]; @@ -394,10 +386,6 @@ public class PhotoModule R.string.camera_disabled); break; } - case CAPTURE_ANIMATION_DONE: { - mUI.enablePreviewThumb(false); - break; - } } } } @@ -684,10 +672,10 @@ public class PhotoModule private final class ShutterCallback implements CameraShutterCallback { - private boolean mAnimateFlash; + private boolean mNeedsAnimation; - public ShutterCallback(boolean animateFlash) { - mAnimateFlash = animateFlash; + public ShutterCallback(boolean needsAnimation) { + mNeedsAnimation = needsAnimation; } @Override @@ -695,8 +683,13 @@ public class PhotoModule mShutterCallbackTime = System.currentTimeMillis(); mShutterLag = mShutterCallbackTime - mCaptureStartTime; Log.v(TAG, "mShutterLag = " + mShutterLag + "ms"); - if (mAnimateFlash) { - mActivity.runOnUiThread(mFlashRunnable); + if (mNeedsAnimation) { + mActivity.runOnUiThread(new Runnable() { + @Override + public void run() { + animateAfterShutter(); + } + }); } } } @@ -735,9 +728,11 @@ public class PhotoModule if (mPaused) { return; } - //TODO: We should show the picture taken rather than frozen preview here if (mIsImageCaptureIntent) { stopPreview(); + } else { + // Animate capture with real jpeg data instead of a preview frame. + mUI.animateCapture(jpegData); } if (mSceneMode == Util.SCENE_MODE_HDR) { mUI.showSwitcher(); @@ -762,18 +757,6 @@ public class PhotoModule Log.v(TAG, "mPictureDisplayedToJpegCallbackTime = " + mPictureDisplayedToJpegCallbackTime + "ms"); - /*TODO: - // Only animate when in full screen capture mode - // i.e. If monkey/a user swipes to the gallery during picture taking, - // don't show animation - if (ApiHelper.HAS_SURFACE_TEXTURE && !mIsImageCaptureIntent - && mActivity.mShowCameraAppView) { - // Finish capture animation - mHandler.removeMessages(CAPTURE_ANIMATION_DONE); - ((CameraScreenNail) mActivity.mCameraScreenNail).animateSlide(); - mHandler.sendEmptyMessageDelayed(CAPTURE_ANIMATION_DONE, - CaptureAnimManager.getAnimationDuration()); - } */ mFocusManager.updateFocusUI(); // Ensure focus indicator is hidden. if (!mIsImageCaptureIntent) { if (ApiHelper.CAN_START_PREVIEW_IN_JPEG_CALLBACK) { @@ -919,16 +902,12 @@ public class PhotoModule } } - private void animateFlash() { + private void animateAfterShutter() { // Only animate when in full screen capture mode // i.e. If monkey/a user swipes to the gallery during picture taking, // don't show animation if (!mIsImageCaptureIntent) { mUI.animateFlash(); - - // TODO: mUI.enablePreviewThumb(true); - // mHandler.sendEmptyMessageDelayed(CAPTURE_ANIMATION_DONE, - // CaptureAnimManager.getAnimationDuration()); } } @@ -948,7 +927,7 @@ public class PhotoModule final boolean animateBefore = (mSceneMode == Util.SCENE_MODE_HDR); if (animateBefore) { - animateFlash(); + animateAfterShutter(); } // Set rotation and gps data. @@ -1130,7 +1109,7 @@ public class PhotoModule newExtras.putBoolean(CropExtras.KEY_SHOW_WHEN_LOCKED, true); } - // TODO ... + // TODO: Share this constant. final String CROP_ACTION = "com.android.camera.action.CROP"; Intent cropIntent = new Intent(CROP_ACTION); |