diff --git a/readium/lcp/src/main/java/org/readium/r2/lcp/LcpService.kt b/readium/lcp/src/main/java/org/readium/r2/lcp/LcpService.kt index 9ed8491896..c5e758a669 100644 --- a/readium/lcp/src/main/java/org/readium/r2/lcp/LcpService.kt +++ b/readium/lcp/src/main/java/org/readium/r2/lcp/LcpService.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.readium.r2.lcp.auth.LcpDialogAuthentication +import org.readium.r2.lcp.license.model.LicenseDocument import org.readium.r2.lcp.persistence.LcpDatabase import org.readium.r2.lcp.service.CRLService import org.readium.r2.lcp.service.DeviceRepository @@ -137,7 +138,9 @@ public interface LcpService { */ public data class AcquiredPublication( val localFile: File, - val suggestedFilename: String + val suggestedFilename: String, + val mediaType: MediaType, + val licenseDocument: LicenseDocument ) { @Deprecated("Use `localFile` instead", replaceWith = ReplaceWith("localFile"), level = DeprecationLevel.ERROR) val localURL: String get() = localFile.path diff --git a/readium/lcp/src/main/java/org/readium/r2/lcp/service/LicensesService.kt b/readium/lcp/src/main/java/org/readium/r2/lcp/service/LicensesService.kt index d73b5bbfea..03e88852ad 100644 --- a/readium/lcp/src/main/java/org/readium/r2/lcp/service/LicensesService.kt +++ b/readium/lcp/src/main/java/org/readium/r2/lcp/service/LicensesService.kt @@ -237,7 +237,9 @@ internal class LicensesService( return LcpService.AcquiredPublication( localFile = destination, - suggestedFilename = "${license.id}.${mediaType.fileExtension}" + suggestedFilename = "${license.id}.${mediaType.fileExtension}", + mediaType = mediaType, + licenseDocument = license ) } } diff --git a/readium/shared/src/main/java/org/readium/r2/shared/publication/html/DomRange.kt b/readium/shared/src/main/java/org/readium/r2/shared/publication/html/DomRange.kt index 4ef0ef951d..80290f2fee 100644 --- a/readium/shared/src/main/java/org/readium/r2/shared/publication/html/DomRange.kt +++ b/readium/shared/src/main/java/org/readium/r2/shared/publication/html/DomRange.kt @@ -95,7 +95,7 @@ public data class DomRange( } } - @Deprecated("Renamed into [charOffset]", ReplaceWith("charOffset")) + @Deprecated("Renamed into [charOffset]", ReplaceWith("charOffset"), level = DeprecationLevel.ERROR) val offset: Long? get() = charOffset?.toLong() } diff --git a/readium/shared/src/main/java/org/readium/r2/shared/publication/opds/Properties.kt b/readium/shared/src/main/java/org/readium/r2/shared/publication/opds/Properties.kt index 55def66d7e..fea241ddab 100644 --- a/readium/shared/src/main/java/org/readium/r2/shared/publication/opds/Properties.kt +++ b/readium/shared/src/main/java/org/readium/r2/shared/publication/opds/Properties.kt @@ -46,7 +46,7 @@ public val Properties.indirectAcquisitions: List } ?: emptyList() -@Deprecated("Use [indirectAcquisitions] instead.", ReplaceWith("indirectAcquisitions")) +@Deprecated("Use [indirectAcquisitions] instead.", ReplaceWith("indirectAcquisitions"), level = DeprecationLevel.ERROR) public val Properties.indirectAcquisition: List get() = indirectAcquisitions diff --git a/test-app/src/main/java/org/readium/r2/testapp/bookshelf/BookRepository.kt b/test-app/src/main/java/org/readium/r2/testapp/bookshelf/BookRepository.kt index d4abc22ca1..a57260ebed 100644 --- a/test-app/src/main/java/org/readium/r2/testapp/bookshelf/BookRepository.kt +++ b/test-app/src/main/java/org/readium/r2/testapp/bookshelf/BookRepository.kt @@ -244,7 +244,13 @@ class BookRepository( .fold( { val file = it.localFile - val asset = assetRetriever.retrieve(file, fileExtension = File(it.suggestedFilename).extension) + val asset = assetRetriever.retrieve( + file.toUrl(), + assetType = AssetType.Archive, + mediaType = it.mediaType + ).getOrElse { error -> + return Try.failure(ImportError.PublicationError(error)) + } file to asset }, { @@ -254,15 +260,6 @@ class BookRepository( ) } - if (publicationTempAsset == null) { - val exception = Publication.OpeningException.UnsupportedAsset("Unsupported media type") - return Try.failure( - ImportError.PublicationError( - PublicationError.UnsupportedPublication(exception) - ) - ) - } - val fileName = "${UUID.randomUUID()}.${publicationTempAsset.mediaType.fileExtension}" val libraryFile = File(storageDir, fileName) val libraryUrl = libraryFile.toUrl()