summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorDoris Liu <tianliu@google.com>2013-08-21 00:29:10 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-08-21 00:29:11 +0000
commitd7e01e25dab83af2fe093d73f8f5f705f1a27305 (patch)
tree9ac55ccd092e50ec27f2d60fcb9e0341dfa0e2de /src/com
parent2b18ecece9ad0affe9054b2818722bf727fcde97 (diff)
parent6df2d96e6a3d1f20ef04d2a29c9bb15f3002ad15 (diff)
downloadandroid_packages_apps_Snap-d7e01e25dab83af2fe093d73f8f5f705f1a27305.tar.gz
android_packages_apps_Snap-d7e01e25dab83af2fe093d73f8f5f705f1a27305.tar.bz2
android_packages_apps_Snap-d7e01e25dab83af2fe093d73f8f5f705f1a27305.zip
Merge "Fix video snapshot aspect ratio" into gb-ub-photos-carlsbad
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/camera/MediaSaveService.java16
-rw-r--r--src/com/android/camera/VideoModule.java4
2 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/camera/MediaSaveService.java b/src/com/android/camera/MediaSaveService.java
index 40675b8c0..713821d50 100644
--- a/src/com/android/camera/MediaSaveService.java
+++ b/src/com/android/camera/MediaSaveService.java
@@ -20,6 +20,7 @@ import android.app.Service;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
+import android.graphics.BitmapFactory;
import android.location.Location;
import android.net.Uri;
import android.os.AsyncTask;
@@ -100,6 +101,13 @@ public class MediaSaveService extends Service {
t.execute();
}
+ public void addImage(final byte[] data, String title, long date, Location loc,
+ int orientation, ExifInterface exif,
+ OnMediaSavedListener l, ContentResolver resolver) {
+ // When dimensions are unknown, pass 0 as width and height,
+ // and decode image for width and height later in a background thread
+ addImage(data, title, date, loc, 0, 0, orientation, exif, l, resolver);
+ }
public void addImage(final byte[] data, String title, Location loc,
int width, int height, int orientation, ExifInterface exif,
OnMediaSavedListener l, ContentResolver resolver) {
@@ -161,6 +169,14 @@ public class MediaSaveService extends Service {
@Override
protected Uri doInBackground(Void... v) {
+ if (width == 0 || height == 0) {
+ // Decode bounds
+ BitmapFactory.Options options = new BitmapFactory.Options();
+ options.inJustDecodeBounds = true;
+ BitmapFactory.decodeByteArray(data, 0, data.length, options);
+ width = options.outWidth;
+ height = options.outHeight;
+ }
return Storage.addImage(
resolver, title, date, loc, orientation, exif, data, width, height);
}
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 9f5ca08e9..e1b921d4c 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -2141,9 +2141,9 @@ public class VideoModule implements CameraModule,
String title = CameraUtil.createJpegName(dateTaken);
ExifInterface exif = Exif.getExif(data);
int orientation = Exif.getOrientation(exif);
- Size s = mParameters.getPictureSize();
+
mActivity.getMediaSaveService().addImage(
- data, title, dateTaken, loc, s.width, s.height, orientation,
+ data, title, dateTaken, loc, orientation,
exif, mOnPhotoSavedListener, mContentResolver);
}