github van-geaux/lagrange-reader v1.4.0
Lagrange 1.4.0

one month ago

Lagrange 1.4.0

Features

  • 482c7f8 Added client-side offline extraction for downloaded CBR and CB7 archives.
    • Supports RAR4/RAR5-backed CBR through Junrar and 7z-backed CB7 through Commons Compress.
    • Normalizes supported image entries into a bounded cached CBZ for the existing comic reader.
    • Preserves the original download, reuses valid extraction caches, and atomically replaces incomplete output.
    • Rejects encrypted, unsafe, oversized, malformed, or unsupported archives and cleans failed extraction output.
  • 6291f07 Added server-hosted sign-in for local and OIDC-configured BookOrbit deployments.
    • Opens the server's own /login page in a transient in-app browser.
    • Shares authenticated cookies with the app's API client and watches /api/v1/auth/me for the asynchronous session exchange.
    • Closes the browser after authentication and resumes the pending destination instead of returning to Login.
    • Includes cancellation, retry, same-origin, TLS-error, and watcher-cleanup handling.

Improvements

  • d211211 Kept Series and Authors catalog controls fixed while their grids scroll.
    • Corrected jump-rail offsets after moving the count, filter, and header controls outside the lazy grids.
    • Added regression coverage for fixed control bounds and catalog navigation.
  • cc4f193 Completed the local-download lifecycle state handling.
    • Book actions now expose the applicable Download, Cancel, Retry, Update local, Clear, and Delete local actions.
    • Local books shows a conditional Downloads section for active and failed transfers, with progress, retry, cancellation, per-item clearing, and Clear all for failed entries.
    • Interrupted attempts are persisted separately from completed local copies, so failed first downloads remain remote-only while failed updates retain the previous local copy.

Fixes

  • Fixed Series and Authors toolbar and jump-rail behavior so scrolling catalog content no longer moves or obscures the controls.
  • Fixed download failure state so failed attempts do not appear as completed local books and failed updates do not discard a usable previous copy.
  • Fixed server sign-in completion so successful authentication dismisses the transient sign-in browser and continues the user's intended action.

Others

  • Compatibility and validation:
    • Offline RAR4/RAR5/7z extraction and reading of downloaded CBR/CB7 were automated-verified and user-confirmed on the offline reader path.
    • Server-hosted sign-in was automated-verified and user-confirmed working.
    • Series and Authors fixed controls were covered by regression instrumentation and user-confirmed working.
    • The final local JVM gate reported 364 tests across 55 suites with zero failures, errors, or skips.
    • lintDebug, Kotlin compilation, Android-test compilation, and debug APK assembly passed; lint reported 0 errors, 39 warnings, and 14 informational findings.
    • Physical-device validation of the complete interrupted-download and failed-update lifecycle remains pending because no ADB target was available for the automated gate.
  • Known limitations:
    • Native AppAuth/Custom Tabs OIDC remains deferred until BookOrbit provides the required mobile redirect allow-list support and the identity-provider callback is registered.
    • Some identity providers may reject authentication in an embedded browser; those deployments should use the future external-browser/AppAuth flow.
    • Downloaded comic archives still require supported, non-encrypted archive formats and valid image entries; unsupported or unsafe archives are rejected explicitly.
  • Upgrade notes:
    • No migration action is required for existing readers, downloads, progress, or local audiobook history.
    • Existing downloaded CBR/CB7 files can be opened offline after the app creates or reuses their local normalized CBZ cache.

Don't miss a new lagrange-reader release

NewReleases is sending notifications on new releases.