Skip to content

3.4.0

Latest

Choose a tag to compare

@mickael-menu mickael-menu released this 11 Sep 17:18
· 2 commits to develop since this release
1b1f6b3

Warning

Minor releases (a.B.c) of the Readium toolkit may now include minor breaking changes, such as dependency upgrades or small API modifications. Major version numbers are reserved for significant architectural changes.

Documentation

Changelog

⚠️ The minimum supported Android version is now API 24 (Android 7.0).

Added

Navigator

  • Added a scroll preference to the PDFium adapter, to switch between a continuous scroll layout (true) and a paginated one (false) snapping to page boundaries. The existing scrollAxis preference is only effective when scroll is enabled, as paginated layouts are always horizontal (contributed by @ddfreiling).
  • The EPUB navigator now reports the image under a tap through the new experimental TapEvent.targetElement property, making it easy to build features such as a full-screen image viewer. See the EPUB image viewer guide.

Changed

Navigator

  • ⚠️ The PDFium adapter now defaults to a horizontal paginated layout, instead of a vertical continuous scroll. Set PdfiumDefaults(scroll = true) to restore the previous behavior. See the migration guide.

LCP

  • Opening an LCP publication is no longer delayed by the CRL used to validate its license. The CRL is now downloaded when creating the LcpService, and an expired one is refreshed in the background instead of making the user wait for the response.

Fixed

Navigator

  • Fixed the PDFium adapter reporting page positions off by one: currentLocator was one page ahead of the visible page, the first page was never reported, and the last page never updated currentLocator (contributed by @huttarl).
    • ⚠️ You must migrate the Locator objects created by the PDFium adapter and persisted in your database (e.g. bookmarks, reading progression), as their positions were one page too high. Use the new Publication.migrateLegacyPdfiumLocator() helper and take a look at the migration guide.

LCP

  • #832 The CRL used to validate LCP licenses is now checked to be a genuine X.509 CRL before being cached. Networks with a captive portal (e.g. on a plane) could return their login page with a 200 OK status, which was then cached for seven days and prevented opening LCP publications. An invalid CRL cached by a previous version is now ignored instead of waiting for its expiration.

Shared

  • EPUB HREFs that are not percent-encoded but carry a fragment or query (e.g. chapter one.xhtml#section, with a space in the filename) now keep their #fragment/?query instead of encoding the separators into the path. This fixes table of contents and Media Overlays links failing to resolve and navigate in poorly-authored EPUBs.

What's Changed

New Contributors

Full Changelog: 3.3.0...3.4.0