Skip to content
This repository has been archived by the owner on Jul 29, 2022. It is now read-only.

2.0.0-alpha.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@mickael-menu mickael-menu released this 29 Oct 09:40
· 55 commits to develop since this release
c1018ca

Take a look at the migration guide

Added

  • LCP implementation of the Content Protection API to work with the new Streamer API (contributed by @qnga).
    • It is highly recommended that you upgrade to the new Streamer API to open publications, which will simplify DRM unlocking.
  • Two default implementations of LcpAuthenticating:
    • LcpDialogAuthentication to prompt the user for its passphrase with the official LCP dialog.
    • LcpPassphraseAuthentication to provide directly a passphrase, pulled for example from a database or a web service.
  • LcpService::isLcpProtected() provides a way to check if a file is protected with LCP.
  • All the LcpException errors are now implementing UserException and are suitable for user display. Use getUserMessage() to get the localized message.

Changed

  • The public API got modernized to be more Kotlin idiomatic (contributed by @qnga).
    • All asynchronous APIs are now suspending to take advantage of Kotlin's coroutines.
  • LcpAuthenticating is now provided with more information and you will need to update any implementation you may have.
    • If you copied the default authentication dialog, it's recommended to use LcpDialogAuthentication instead.
  • Publications are now downloaded to a temporary location, to make sure disk storage can be recovered automatically by the system. After acquiring the publication, you need to move the downloaded file to another permanent location.
  • The private liblcp dependency is now accessed through reflection, to allow switching LCP dynamically (contributed by @qnga).
    • You need to add implementation "readium:liblcp:1.0.0@aar" to your build.gradle.
    • LcpService::create() returns null if lcplib is not found.

Fixed

  • Decrypting resources in some edge cases (contributed by @qnga)
  • Issues with LSD interactions:
    • Exceptions handling with renew and return interactions.
    • Presentation of the renew interaction through an HTML page.
  • The timeout of fetching the License Status Document is reduced to 5 seconds, to avoid blocking a publication opening in low Internet conditions.