Skip to content

Releases: Aatricks/Emaki

V0.6

Choose a tag to compare

@Aatricks Aatricks released this 19 Jul 00:02
0c714c0

What's Changed

  • Performance: lazy rendering, offline pipeline, and device benchmarks by @Aatricks in #79

Full Changelog: V0.5.9.2...V0.6

V0.5.9.2

Choose a tag to compare

@Aatricks Aatricks released this 12 Jul 23:47

What's Changed

  • Added configurable vertical margins for light novels long slate by @Aatricks
  • Improved automatic update heuristic by @Aatricks
  • Added configurable reader brightness by @Aatricks
  • Improve pagination for light novel reader content by @Aatricks

Full Changelog: V0.5.9.1...V0.5.9.2

V0.5.9.1

Choose a tag to compare

@Aatricks Aatricks released this 08 Jul 05:50

What's Changed

  • UI/UX improvements: reader interaction, library covers, appearance settings by @Aatricks in #78
  • Automatic updates by @Aatricks

Full Changelog: V0.5.9...V0.5.9.1

V0.5.9

Choose a tag to compare

@Aatricks Aatricks released this 06 Jul 19:55
3a1f692

What's Changed

  • Perf(reader): stop manhwa scroll degrading after chapters and drawer use by @Aatricks in #72
  • Fix Novelight chapter list: recover dropped chapters, refresh stale cache, correct reader labels by @Aatricks in #73
  • Fix Novelight current-chapter number shown on the library card by @Aatricks in #74
  • Fix(storage): reclaim orphaned downloads and cap epub/pdf caches by @Aatricks in #75
  • Fix(reader): toggle controls from the whole reader surface, not per-item by @Aatricks in #76
  • Fix(reader): preserve reading progress across library round-trips by @Aatricks in #77

For choosing the app flavour, use the arm64 if you don't know which to pick

Full Changelog: V0.5.8.2...V0.5.9

V0.5.8.2

Choose a tag to compare

@Aatricks Aatricks released this 02 Jul 02:41
5310f69

What's Changed

  • Refactor: architecture cleanup (ViewModel decomposition + dead code removal) by @Aatricks in #69
  • Fix: solidify the download/caching/storage pipeline by @Aatricks in #70
  • Fix progress clobber, cancellation propagation, and reader recomposition by @Aatricks in #71

Full Changelog: V0.5.8.1...V0.5.8.2

V0.5.8.1

Choose a tag to compare

@Aatricks Aatricks released this 30 Jun 21:28

Changes

  • Updated dependencies including but not solely Kotlin, AGP, Gradle, Compose, Coil ... by @Aatricks
  • Updated Compose dependency leading to a fix in frame pacing by @Aatricks

Full Changelog: V0.5.8...V0.5.8.1

V.0.5.8

Choose a tag to compare

@Aatricks Aatricks released this 30 Jun 16:22

Changes

  • Improved gpu bitmap render pipeline to use hardware, fixing a bug leading to microstutters and increasingly long frame times during scroll animations by @Aatricks
  • Improved read chapters auto-deletion logic by @Aatricks
  • Added NoveLight as a source by @Aatricks
  • Fixed NovelFire source search not correctly querying results by @Aatricks

Full Changelog: V0.5.7.1...V0.5.8

V0.5.7.1

Choose a tag to compare

@Aatricks Aatricks released this 28 May 15:45

Changes:

  • Implemented hot reloading after backup import by @Aatricks
  • Fixed a bug leading to entries never getting a NEW chapter pill by @Aatricks

Full Changelog: V0.5.7...V0.5.7.1

V0.5.7

Choose a tag to compare

@Aatricks Aatricks released this 23 May 15:56

What's Changed

  • Handle permanent image failures in download state tracking by @Aatricks in #67
  • fix progress saving by @Aatricks in #68

Full Changelog: V0.5.6...V0.5.7

V0.5.6

Choose a tag to compare

@Aatricks Aatricks released this 26 Apr 20:38

Changes

  • Build Flavors: Added separate standard and ai app flavors so the default build works without AI-specific dependencies.
  • AI Summaries: Reworked summarization behind a SummaryEngine abstraction with a disabled fallback for standard builds and an AI-backed implementation for the ai flavor.
  • AI Initialization: Fixed concurrent initialization in LlmEdgeSummaryEngine so multiple requests share one initialization instead of racing or loading the model multiple times.
  • CI Updates: Split GitHub Actions validation into standard debug, AI debug, and release-specific workflows to avoid requiring signing secrets during normal validation.
  • Release Builds: Updated CI and documentation to use explicit flavor-specific Gradle tasks such as assembleStandardDebug, testStandardDebugUnitTest, and assembleAiDebug.
  • Security: Added safer DNS resolution for network requests to block localhost, private networks, link-local addresses, metadata IPs, and DNS rebinding-style redirects.
  • Web Fetching: Removed unsafe Jsoup.connect fallback paths so HTML fetching goes through the shared OkHttp client and security policy.
  • Cloudflare WebView: Hardened WebView navigation and settings, blocked unsafe schemes/hosts, and ensured the WebView is destroyed when dismissed.
  • Reading Progress: Refactored reading progress into ReaderProgressController, added explicit progress update semantics, and improved lifecycle-safe progress persistence.
  • Database Safety: Enabled Room schema export, added migration coverage across supported schema versions, removed persisted transient selection state, and removed destructive migration fallback.
  • Library State: Moved item selection out of persisted database state and kept it as transient UI/ViewModel state.
  • PDF Support: Added a bounded PDF document handle pool, document-scoped PDF image caching, deterministic image filenames, and cache cleanup for extracted PDF images.
  • Image Loading: Refactored image caching and downloading into dedicated ImageCache and ImageDownloader components.
  • Image Downloads: Streamed large web images to disk with byte limits and temp-file handling instead of buffering entire images in memory.
  • Image Prefetching: Added priority-aware image downloads so speculative prefetches no longer poison user-requested image loads.
  • Prefetching: Replaced unbounded prefetch retry behavior with explicit, bounded retry limits.
  • EPUB Images: Added Coil-based EPUB image loading through a custom fetcher, reducing manual bitmap lifecycle management.
  • Testing: Added and reorganized tests for migrations, AI initialization, URL security, progress persistence, image downloading, WebView navigation, and reader state.
  • Benchmarks: Moved benchmark-style tests out of the normal unit-test path so PR tests stay deterministic.
  • Dependencies: Centralized dependency declarations through the Gradle version catalog and updated AI integration to use the Maven-published llmedge dependency.
  • Project Cleanup: Renamed the Gradle root project to EasyReader, updated package namespace references, removed stale UI dump artifacts, and cleaned up documentation.

Fixes

  • Fixed clean-clone builds by removing the required local llmedge-release.aar from the default build path.
  • Fixed PR CI incorrectly depending on AI flavor and release signing.
  • Fixed possible duplicate AI model initialization under concurrent summary requests.
  • Fixed possible data loss risk from Room destructive migration fallback.
  • Fixed stale nullable reading progress fields that could not previously be cleared.
  • Fixed PDF handle pooling so active and idle handles are bounded together.
  • Fixed leaking randomly named PDF image cache files.
  • Fixed full-image response buffering that could cause memory spikes on large images.
  • Fixed speculative image requests causing visible image loads to fail.
  • Fixed WebView URL validation false positives caused by substring-based scheme checks.
  • Fixed image dimension sniffing to handle partial reads correctly.
  • Fixed duplicate or misplaced AI unit test source sets.
  • Fixed misleading README build commands after adding product flavors.

Full Changelog: V0.5.5...V0.5.6