summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/one/v2/OneCameraImpl.java3
-rw-r--r--src/com/android/camera/one/v2/OneCameraZslImpl.java3
-rw-r--r--src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java6
-rw-r--r--src/com/android/camera/util/ExifUtil.java7
4 files changed, 14 insertions, 5 deletions
diff --git a/src/com/android/camera/one/v2/OneCameraImpl.java b/src/com/android/camera/one/v2/OneCameraImpl.java
index 294e74c35..4415859eb 100644
--- a/src/com/android/camera/one/v2/OneCameraImpl.java
+++ b/src/com/android/camera/one/v2/OneCameraImpl.java
@@ -32,6 +32,7 @@ import android.hardware.camera2.DngCreator;
import android.hardware.camera2.TotalCaptureResult;
import android.hardware.camera2.params.MeteringRectangle;
import android.hardware.camera2.params.StreamConfigurationMap;
+import android.location.Location;
import android.media.Image;
import android.media.ImageReader;
import android.net.Uri;
@@ -490,7 +491,7 @@ public class OneCameraImpl extends AbstractOneCamera {
exif.setTag(directionTag);
}
new ExifUtil(exif).populateExif(Optional.<TaskImageContainer.TaskImage>absent(),
- Optional.of(new CaptureResultProxy(result)));
+ Optional.of(new CaptureResultProxy(result)), Optional.<Location>absent());
} catch (IOException e) {
Log.w(TAG, "Could not read exif from gcam jpeg", e);
exif = null;
diff --git a/src/com/android/camera/one/v2/OneCameraZslImpl.java b/src/com/android/camera/one/v2/OneCameraZslImpl.java
index 275eec910..b5cc7363d 100644
--- a/src/com/android/camera/one/v2/OneCameraZslImpl.java
+++ b/src/com/android/camera/one/v2/OneCameraZslImpl.java
@@ -29,6 +29,7 @@ import android.hardware.camera2.CaptureResult.Key;
import android.hardware.camera2.TotalCaptureResult;
import android.hardware.camera2.params.MeteringRectangle;
import android.hardware.camera2.params.StreamConfigurationMap;
+import android.location.Location;
import android.media.CameraProfile;
import android.media.Image;
import android.media.ImageReader;
@@ -630,7 +631,7 @@ public class OneCameraZslImpl extends AbstractOneCamera {
exif.setTag(directionTag);
}
new ExifUtil(exif).populateExif(Optional.<TaskImageContainer.TaskImage>absent(),
- Optional.of(new CaptureResultProxy(result)));
+ Optional.of(new CaptureResultProxy(result)), Optional.<Location>absent());
session.saveAndFinish(acquireJpegBytes(image, degrees),
size.getWidth(), size.getHeight(), 0, exif, new OnMediaSavedListener() {
@Override
diff --git a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
index 7cbf024ec..e5d8b3f93 100644
--- a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
+++ b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
@@ -18,6 +18,7 @@ package com.android.camera.processing.imagebackend;
import android.graphics.ImageFormat;
import android.graphics.Rect;
+import android.location.Location;
import android.media.CameraProfile;
import android.net.Uri;
@@ -262,13 +263,14 @@ public class TaskCompressImageToJpeg extends TaskJpegEncode {
protected ExifInterface createExif(TaskImage image,
ListenableFuture<TotalCaptureResultProxy> totalCaptureResultProxyFuture) {
ExifInterface exif = new ExifInterface();
+ Optional<Location> location = Optional.fromNullable(mSession.getLocation());
try {
new ExifUtil(exif).populateExif(Optional.of(image),
- Optional.<CaptureResultProxy>of(totalCaptureResultProxyFuture.get()));
+ Optional.<CaptureResultProxy>of(totalCaptureResultProxyFuture.get()), location);
} catch (InterruptedException | ExecutionException e) {
new ExifUtil(exif).populateExif(Optional.of(image),
- Optional.<CaptureResultProxy>absent());
+ Optional.<CaptureResultProxy>absent(), location);
}
return exif;
diff --git a/src/com/android/camera/util/ExifUtil.java b/src/com/android/camera/util/ExifUtil.java
index a7c5b32ec..ef340102b 100644
--- a/src/com/android/camera/util/ExifUtil.java
+++ b/src/com/android/camera/util/ExifUtil.java
@@ -65,9 +65,11 @@ public class ExifUtil {
*
* @param image A {@link TaskImageContainer.TaskImage} from which to extract info from.
* @param captureResult A {@link CaptureResultProxy} from which to extract info from.
+ * @param location optinally a location that should be added to the EXIF.
*/
public void populateExif(Optional<TaskImageContainer.TaskImage> image,
- Optional<CaptureResultProxy> captureResult) {
+ Optional<CaptureResultProxy> captureResult,
+ Optional<Location> location) {
addMakeAndModelToExif();
if (image.isPresent()) {
addImageDataToExif(image.get());
@@ -75,6 +77,9 @@ public class ExifUtil {
if (captureResult.isPresent()) {
addCaptureResultToExif(mExif, captureResult.get());
}
+ if (location.isPresent()) {
+ addLocationToExif(location.get());
+ }
}
private void addMakeAndModelToExif() {