summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/MediaSaveService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/MediaSaveService.java')
-rw-r--r--src/com/android/camera/MediaSaveService.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/com/android/camera/MediaSaveService.java b/src/com/android/camera/MediaSaveService.java
index 217f44f27..8394162db 100644
--- a/src/com/android/camera/MediaSaveService.java
+++ b/src/com/android/camera/MediaSaveService.java
@@ -163,6 +163,23 @@ public class MediaSaveService extends Service {
t.execute();
}
+ public void addHEIFImageFromJpeg(byte[] data, String title, long date, Location loc,
+ int width, int height, int orientation, ExifInterface exif,
+ ContentResolver resolver, OnMediaSavedListener listener,
+ int qualitiy, String pictureFormat) {
+ if (isQueueFull()) {
+ Log.e(TAG, "Cannot add image when the queue is full");
+ return;
+ }
+ HEIFImageSaveTask t = new HEIFImageSaveTask(data, title, date, loc, width, height, orientation,
+ exif, resolver, listener, qualitiy, pictureFormat);
+ mMemoryUse += data.length;
+ if (isQueueFull()) {
+ onQueueFull();
+ }
+ t.execute();
+ }
+
public void addClearsightImage(byte[] clearsight, GImage bayer, GDepth.DepthMap depthMap,
String title, long date, Location loc, int width, int height,
int orientation, ExifInterface exif,
@@ -328,6 +345,57 @@ public class MediaSaveService extends Service {
}
}
+ private class HEIFImageSaveTask extends AsyncTask<Void, Void, Uri> {
+ private byte[] data;
+ private String title;
+ private long date;
+ private Location loc;
+ private int width, height;
+ private int orientation;
+ private ExifInterface exif;
+ private ContentResolver resolver;
+ private OnMediaSavedListener listener;
+ private int quality;
+ private String pictureFormat;
+
+ public HEIFImageSaveTask(byte[] data, String title, long date, Location loc,
+ int width, int height, int orientation, ExifInterface exif,
+ ContentResolver resolver, OnMediaSavedListener listener,
+ int quality,String pictureFormat) {
+ this.data = data;
+ this.title = title;
+ this.date = date;
+ this.loc = loc;
+ this.width = width;
+ this.height = height;
+ this.orientation = orientation;
+ this.exif = exif;
+ this.resolver = resolver;
+ this.listener = listener;
+ this.quality = quality;
+ this.pictureFormat = pictureFormat;
+ }
+
+ @Override
+ protected void onPreExecute() {
+ super.onPreExecute();
+ }
+
+ @Override
+ protected Uri doInBackground(Void... params) {
+ return Storage.addHeifImage(
+ resolver,title,date,loc,orientation,exif,data,
+ width,height,quality,pictureFormat);
+ }
+
+ @Override
+ protected void onPostExecute(Uri uri) {
+ boolean previouslyFull = isQueueFull();
+ mMemoryUse -= data.length;
+ if (isQueueFull() != previouslyFull) onQueueAvailable();
+ }
+ }
+
private class ImageSaveTask extends AsyncTask <Void, Void, Uri> {
private byte[] data;
private String title;