diff options
author | Angus Kong <shkong@google.com> | 2013-01-31 18:22:44 -0800 |
---|---|---|
committer | Angus Kong <shkong@google.com> | 2013-01-31 18:30:27 -0800 |
commit | 86d36313d88fe96354f2cdd4f378e5ff8397c458 (patch) | |
tree | 23f50d12f89301ec670bd9949ff4a4072850d710 /src/com/android/camera/VideoModule.java | |
parent | 8052651774e5a4f68f9ea3e79319e59eafd354cc (diff) | |
download | android_packages_apps_Snap-86d36313d88fe96354f2cdd4f378e5ff8397c458.tar.gz android_packages_apps_Snap-86d36313d88fe96354f2cdd4f378e5ff8397c458.tar.bz2 android_packages_apps_Snap-86d36313d88fe96354f2cdd4f378e5ff8397c458.zip |
Make video snapshot save images in the background.
bug:8114662
Change-Id: I4e96269bd7723dd9a82d2905a01f736c8982c4ed
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r-- | src/com/android/camera/VideoModule.java | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index d32234a95..8d84e0074 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -237,6 +237,17 @@ public class VideoModule implements CameraModule, private boolean mRestoreFlash; // This is used to check if we need to restore the flash // status when going back from gallery. + private MediaSaveService.OnMediaSavedListener mOnMediaSavedListener = + new MediaSaveService.OnMediaSavedListener() { + @Override + public void onMediaSaved(Uri uri) { + if (uri != null) { + Util.broadcastNewPicture(mActivity, uri); + } + } + }; + + protected class CameraOpenThread extends Thread { @Override public void run() { @@ -2165,6 +2176,7 @@ public class VideoModule implements CameraModule, mShutterButton.setImageResource(R.drawable.btn_new_shutter_video); mShutterButton.setOnShutterButtonListener(this); mShutterButton.requestFocus(); + mShutterButton.enableTouch(true); // Disable the shutter button if effects are ON since it might take // a little more time for the effects preview to be ready. We do not @@ -2465,7 +2477,8 @@ public class VideoModule implements CameraModule, return; } - if (mPaused || mSnapshotInProgress || effectsActive()) { + MediaSaveService s = mActivity.getMediaSaveService(); + if (mPaused || mSnapshotInProgress || effectsActive() || s == null || s.isQueueFull()) { return; } @@ -2568,11 +2581,9 @@ public class VideoModule implements CameraModule, String title = Util.createJpegName(dateTaken); int orientation = Exif.getOrientation(data); Size s = mParameters.getPictureSize(); - Uri uri = Storage.addImage(mContentResolver, title, dateTaken, loc, orientation, data, - s.width, s.height); - if (uri != null) { - Util.broadcastNewPicture(mActivity, uri); - } + mActivity.getMediaSaveService().addImage( + data, title, dateTaken, loc, s.width, s.height, + orientation, mOnMediaSavedListener, mContentResolver); } private boolean resetEffect() { @@ -2813,4 +2824,9 @@ public class VideoModule implements CameraModule, mPieRenderer.hide(); } } + + @Override + public void onMediaSaveServiceConnected(MediaSaveService s) { + // do nothing. + } } |