Repository navigation
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
- Versioned Documentation – Complete API reference on readium.org.
- Migration Guide – Instructions for upgrading from previous versions.
Changelog
Added
Navigator
- Added a
scrollpreference to the PDFium adapter, to switch between a continuous scroll layout (true) and a paginated one (false) snapping to page boundaries. The existingscrollAxispreference is only effective whenscrollis 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.targetElementproperty, 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. SetPdfiumDefaults(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:
currentLocatorwas one page ahead of the visible page, the first page was never reported, and the last page never updatedcurrentLocator(contributed by @huttarl).⚠️ You must migrate theLocatorobjects 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 newPublication.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 OKstatus, 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/?queryinstead 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
- Replace NetworkService with HttpClient in LCP by @stevenzeck in #794
- Fix crashes on zero-size WebView and disposed scroll controller by @qnga in #799
- Fix Dokka by @stevenzeck in #801
- Replace drafts.opds.io with specs.opds.io by @mickael-menu with @Copilot in #806
- Revert OPDS Authentication URL to drafts endpoint by @mickael-menu with @Copilot in #807
- Refactor rendition preferences in new navigators by @qnga in #805
- Fix poorly-authored EPUB links not navigating by @mickael-menu in #808
- Add the
scrollpreference to the PDFium adapter by @mickael-menu in #825 - Fixed page positions off by one in the PDFium adapter by @huttarl in #812
- Add a guide about the new navigators by @qnga in #827
- Add
targetElementto pointer events by @mickael-menu in #803 - Improve CRL retrieval and fix poisoned cache by @mickael-menu in #833
- Update Android SDK and other dependencies by @stevenzeck in #802
- 3.4.0 by @mickael-menu in #834
New Contributors
- @mickael-menu with @Copilot made their first contribution in #806
- @huttarl made their first contribution in #812
Full Changelog: 3.3.0...3.4.0