summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/gallery3d/exif/ExifXmlReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/gallery3d/exif/ExifXmlReader.java')
-rw-r--r--tests/src/com/android/gallery3d/exif/ExifXmlReader.java17
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);