diff options
Diffstat (limited to 'tests/src/com/android/gallery3d/exif/ExifXmlReader.java')
-rw-r--r-- | tests/src/com/android/gallery3d/exif/ExifXmlReader.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/src/com/android/gallery3d/exif/ExifXmlReader.java b/tests/src/com/android/gallery3d/exif/ExifXmlReader.java index 139b0ca47..54def2756 100644 --- a/tests/src/com/android/gallery3d/exif/ExifXmlReader.java +++ b/tests/src/com/android/gallery3d/exif/ExifXmlReader.java @@ -22,8 +22,10 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; public class ExifXmlReader { private static final String TAG_EXIF = "exif"; @@ -44,13 +46,13 @@ public class ExifXmlReader { * @throws XmlPullParserException * @throws IOException */ - static public List<Map<Short, String>> readXml(XmlPullParser parser) + static public List<Map<Short, Set<String>>> readXml(XmlPullParser parser) throws XmlPullParserException, IOException { - List<Map<Short, String>> exifData = - new ArrayList<Map<Short, String>>(IfdId.TYPE_IFD_COUNT); + List<Map<Short, Set<String>>> exifData = + new ArrayList<Map<Short, Set<String>>>(IfdId.TYPE_IFD_COUNT); for (int i = 0; i < IfdId.TYPE_IFD_COUNT; i++) { - exifData.add(new HashMap<Short, String>()); + exifData.add(new HashMap<Short, Set<String>>()); } while (parser.next() != XmlPullParser.END_DOCUMENT) { @@ -79,7 +81,12 @@ public class ExifXmlReader { if (ifdId < 0) { // TODO: the MarkerNote segment. } else { - exifData.get(ifdId).put(id, value); + Set<String> tagData = exifData.get(ifdId).get(id); + if (tagData == null) { + tagData = new HashSet<String>(); + exifData.get(ifdId).put(id, tagData); + } + tagData.add(value.trim()); } parser.require(XmlPullParser.END_TAG, null, null); |