Lagrange 1.4.1
Features
- 05a7f9c Added pull-down/swipe-to-refresh to Book Detail, Series, Authors, Local books, Statistics, and Achievements.
- Automatic/background synchronization remains silent; an explicit swipe shows the indicator immediately and keeps it visible through success, failure, or cancellation.
- Duplicate manual requests are ignored, and failed refreshes retain the last successful content where applicable.
- Local books refresh does not interrupt active downloads or destructive actions.
- 05a7f9c Added user-selectable EPUB fonts, including built-in, accessibility, and custom font selection.
- EPUB-only font controls use a grouped dropdown with Publisher default, System serif, System sans-serif, and System monospace, plus a separate Accessibility fonts section with AccessibleDFA and OpenDyslexic.
- Users can import one active
.ttf/.otfcustom font per library, with Replace and Remove actions; the selection persists alongside existing size, theme, margin, direction, layout, and resume behavior. - Publisher default preserves the book's own CSS as a fallback; built-in choices are mapped through Readium's typeface preferences, while custom fonts are applied only to a cached rewritten reader copy, leaving the original EPUB unmodified.
Improvements
- 05a7f9c Kept the continuous EPUB right-side seek rail usable for active-chapter percentage navigation.
- Continuous EPUB mode keeps the rail enabled even when Readium reports a single page/item, represents active-resource progression from 0–100%, and seeks directly by normalized progression.
- Whole-book progress is unchanged, and paginated EPUB, PDF, and comic page-index rails retain their existing behavior.
- 05a7f9c Introduced staged app-open loading and hid the automatic startup refresh indicator.
- The initial implementation uses a staged branded startup state with phase-specific messages and releases the platform splash before session validation when no cache is available.
- The automatic Home refresh indicator is hidden during startup reconciliation while user-initiated pull-to-refresh feedback is preserved.
Fixes
- 05a7f9c Show server-missing books with a yellow
Missing!cover overlay and make their file-dependent actions unavailable.- The current BookOrbit server catalog is treated as authoritative after reconciliation; server-returned books tagged/state
missingremain visible with the overlay and label, distinct from a locally deleted download. - Actions requiring an available file are unavailable or hidden for server-missing books, while an existing transfer can still be cancelled and an existing local copy can still be deleted.
- The current BookOrbit server catalog is treated as authoritative after reconciliation; server-returned books tagged/state
- 05a7f9c Removed repository-proven unreachable code, including the unused stream URL helper, the legacy EPUB system-bar composable, obsolete Readium audio position/seek calculations, and the unused legacy EPUB parser/extractor graph, while preserving the active
EpubWebViewAssetSessionandepubChapterBaseUrlreader-resource path.
Others
- Compatibility and validation:
- Pull-to-refresh across Book Detail, Series, Authors, Local books, Statistics, and Achievements was verified by automated tests and user-confirmed on-device.
- The continuous EPUB active-resource seek rail was user-confirmed working on-device.
- EPUB built-in, accessibility, and custom font selection were verified with focused preference, mapping, custom-font validation, settings-preservation, and UI regression tests, and user-confirmed on the complete reader-font flow.
- Staged startup and the hidden automatic startup refresh indicator are covered by JVM coordinator tests; physical startup timing/UX validation and any follow-up tuning remain open.
- Server-missing book display and file-dependent action restrictions were covered by focused regression tests for parsing, persistence, and action-state behavior, and user-confirmed working on-device.
- Unreachable-code removal was verified by repository analysis confirming no remaining call sites before deletion.
- Known limitations:
- Physical startup timing/UX validation for the staged startup flow remains open, and further tuning may follow.
- Native AppAuth/Custom Tabs OIDC remains deferred until BookOrbit provides the required mobile redirect allow-list support and the identity-provider callback is registered.
- Upgrade notes:
- No migration action is required for existing readers, downloads, progress, or local audiobook history.
- Existing per-library reader preferences, including size, theme, margin, direction, layout, and resume behavior, remain unaffected by the new font selection.