summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/tinyplanet
diff options
context:
space:
mode:
authorSascha Haeberling <haeberling@google.com>2013-09-27 14:38:39 -0700
committerSascha Haeberling <haeberling@google.com>2013-09-27 14:38:39 -0700
commit21a2e9cb07caba660120b7f5eba6e053a6cb3ac3 (patch)
tree9c4be6eb72bfb0c62a17e9ad86d5d75f4572716b /src/com/android/camera/tinyplanet
parent3cde3ece3e6e384f831a02f21c677e292a824df8 (diff)
downloadandroid_packages_apps_Snap-21a2e9cb07caba660120b7f5eba6e053a6cb3ac3.tar.gz
android_packages_apps_Snap-21a2e9cb07caba660120b7f5eba6e053a6cb3ac3.tar.bz2
android_packages_apps_Snap-21a2e9cb07caba660120b7f5eba6e053a6cb3ac3.zip
Add basic EXIF to the tiny planet so that rotate succeeds.
Bug: 10861115 Change-Id: I1eec2bf4d6879c227a07c5364bc821749ace312b
Diffstat (limited to 'src/com/android/camera/tinyplanet')
-rw-r--r--src/com/android/camera/tinyplanet/TinyPlanetFragment.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/com/android/camera/tinyplanet/TinyPlanetFragment.java b/src/com/android/camera/tinyplanet/TinyPlanetFragment.java
index c49f77ef0..9cde87b16 100644
--- a/src/com/android/camera/tinyplanet/TinyPlanetFragment.java
+++ b/src/com/android/camera/tinyplanet/TinyPlanetFragment.java
@@ -44,14 +44,18 @@ import com.adobe.xmp.XMPMeta;
import com.android.camera.CameraActivity;
import com.android.camera.MediaSaveService;
import com.android.camera.MediaSaveService.OnMediaSavedListener;
+import com.android.camera.exif.ExifInterface;
import com.android.camera.tinyplanet.TinyPlanetPreview.PreviewSizeListener;
import com.android.camera.util.XmpUtil;
import com.android.camera2.R;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.Date;
+import java.util.TimeZone;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@@ -358,7 +362,27 @@ public class TinyPlanetFragment extends DialogFragment implements PreviewSizeLis
ByteArrayOutputStream jpeg = new ByteArrayOutputStream();
resultBitmap.compress(CompressFormat.JPEG, 100, jpeg);
- return new TinyPlanetImage(jpeg.toByteArray(), outputSize);
+ return new TinyPlanetImage(addExif(jpeg.toByteArray()), outputSize);
+ }
+
+ /**
+ * Adds basic EXIF data to the tiny planet image so it an be rewritten
+ * later.
+ *
+ * @param jpeg the JPEG data of the tiny planet.
+ * @return The JPEG data containing basic EXIF.
+ */
+ private byte[] addExif(byte[] jpeg) {
+ ExifInterface exif = new ExifInterface();
+ exif.addDateTimeStampTag(ExifInterface.TAG_DATE_TIME, System.currentTimeMillis(),
+ TimeZone.getDefault());
+ ByteArrayOutputStream jpegOut = new ByteArrayOutputStream();
+ try {
+ exif.writeExif(jpeg, jpegOut);
+ } catch (IOException e) {
+ Log.e(TAG, "Could not write EXIF", e);
+ }
+ return jpegOut.toByteArray();
}
private int getDisplaySize() {