diff --git a/readium/streamer/src/main/java/org/readium/r2/streamer/parser/epub/Metadata.kt b/readium/streamer/src/main/java/org/readium/r2/streamer/parser/epub/Metadata.kt index 6b4ae2453b..e331305806 100644 --- a/readium/streamer/src/main/java/org/readium/r2/streamer/parser/epub/Metadata.kt +++ b/readium/streamer/src/main/java/org/readium/r2/streamer/parser/epub/Metadata.kt @@ -196,10 +196,11 @@ internal class PubMetadataAdapter( val identifier: String? init { - val identifiers = items[Vocabularies.DCTERMS + "identifier"] - ?.associate { Pair(it.property, it.value) }.orEmpty() + val identifiers = items[Vocabularies.DCTERMS + "identifier"].orEmpty() - identifier = uniqueIdentifierId?.let { identifiers[it] } ?: identifiers.values.firstOrNull() + identifier = uniqueIdentifierId + ?.let { uniqueId -> identifiers.firstOrNull { it.id == uniqueId }?.value } + ?: identifiers.firstOrNull()?.value } val published = firstValue(Vocabularies.DCTERMS + "date")?.iso8601ToDate() diff --git a/readium/streamer/src/test/resources/org/readium/r2/streamer/parser/epub/package/identifier-unique.opf b/readium/streamer/src/test/resources/org/readium/r2/streamer/parser/epub/package/identifier-unique.opf index d71be02ddf..7aa0c07138 100644 --- a/readium/streamer/src/test/resources/org/readium/r2/streamer/parser/epub/package/identifier-unique.opf +++ b/readium/streamer/src/test/resources/org/readium/r2/streamer/parser/epub/package/identifier-unique.opf @@ -3,8 +3,9 @@ Alice's Adventures in Wonderland - 978-3-16-148410-0 + BEQ urn:uuid:2 + 978-3-16-148410-0