summaryrefslogtreecommitdiffstats
path: root/gallerycommon/src/com/android/gallery3d/exif/ExifReader.java
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2013-03-11 19:00:12 -0700
committerRuben Brunk <rubenbrunk@google.com>2013-03-13 18:01:42 -0700
commit6e6a524390d8ddebce5de0dcc8ae258e652ec80a (patch)
tree45d3125ab760d526021f43d6229b4f63e651bb17 /gallerycommon/src/com/android/gallery3d/exif/ExifReader.java
parent8cc88f0320a4b62f8256fb33faebf0f75cf172e0 (diff)
downloadandroid_packages_apps_Gallery2-6e6a524390d8ddebce5de0dcc8ae258e652ec80a.tar.gz
android_packages_apps_Gallery2-6e6a524390d8ddebce5de0dcc8ae258e652ec80a.tar.bz2
android_packages_apps_Gallery2-6e6a524390d8ddebce5de0dcc8ae258e652ec80a.zip
Exif parser modifications.
Bug: 8018327 Change-Id: I66a2ec309f9807ac255bbf29d8f5f26de60e89b8
Diffstat (limited to 'gallerycommon/src/com/android/gallery3d/exif/ExifReader.java')
-rw-r--r--gallerycommon/src/com/android/gallery3d/exif/ExifReader.java24
1 files changed, 18 insertions, 6 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/exif/ExifReader.java b/gallerycommon/src/com/android/gallery3d/exif/ExifReader.java
index 5bce9c496..68e972fb7 100644
--- a/gallerycommon/src/com/android/gallery3d/exif/ExifReader.java
+++ b/gallerycommon/src/com/android/gallery3d/exif/ExifReader.java
@@ -22,19 +22,30 @@ import java.io.IOException;
import java.io.InputStream;
/**
- * This class reads the EXIF header of a JPEG file and stores it in {@link ExifData}.
+ * This class reads the EXIF header of a JPEG file and stores it in
+ * {@link ExifData}.
*/
-public class ExifReader {
+class ExifReader {
private static final String TAG = "ExifReader";
+
+ private final ExifInterface mInterface;
+
+ ExifReader(ExifInterface iRef) {
+ mInterface = iRef;
+ }
+
/**
- * Parses the inputStream and and returns the EXIF data in an {@link ExifData}.
+ * Parses the inputStream and and returns the EXIF data in an
+ * {@link ExifData}.
+ *
* @throws ExifInvalidFormatException
* @throws IOException
*/
- public ExifData read(InputStream inputStream) throws ExifInvalidFormatException,
+ protected ExifData read(InputStream inputStream) throws ExifInvalidFormatException,
IOException {
- ExifParser parser = ExifParser.parse(inputStream);
+ ExifParser parser = ExifParser.parse(inputStream, mInterface);
ExifData exifData = new ExifData(parser.getByteOrder());
+ ExifTag tag = null;
int event = parser.next();
while (event != ExifParser.EVENT_END) {
@@ -43,7 +54,7 @@ public class ExifReader {
exifData.addIfdData(new IfdData(parser.getCurrentIfd()));
break;
case ExifParser.EVENT_NEW_TAG:
- ExifTag tag = parser.getTag();
+ tag = parser.getTag();
if (!tag.hasValue()) {
parser.registerForTagValue(tag);
} else {
@@ -69,6 +80,7 @@ public class ExifReader {
buf = new byte[parser.getStripSize()];
if (buf.length == parser.read(buf)) {
exifData.setStripBytes(parser.getStripIndex(), buf);
+ } else {
Log.w(TAG, "Failed to read the strip bytes");
}
break;