- feat: Two-pane layout for settings on wide screens (#2899)
- feat: Use aggregate endpoint to map chapters without volumes to their correct volume for dynamic covers (#2896)
- fix: (deps): update compose.material3.version to v1.5.0-alpha16 (#2898) (@renovate[bot])
- fix: (deps): update compose.version to v1.10.6 (#2897) (@renovate[bot])
- fix: (deps): update dependency androidx.browser:browser to v1.10.0 (#2901) (@renovate[bot])
- fix: (deps): update dependency androidx.compose.material:material to v1.10.6 (#2894) (@renovate[bot])
- fix: (deps): update dependency androidx.work:work-runtime-ktx to v2.11.2 (#2893) (@renovate[bot])
- fix: (deps): update dependency com.google.firebase:firebase-bom to v34.11.0 (#2864) (@renovate[bot])
- fix: (deps): update dependency io.kotest:kotest-assertions-core-jvm to v6.1.9 (#2876) (@renovate[bot])
- fix: compile issue
- fix: compile issue
- fix: correctly remember the last used library tab even when deep into sub-screens (#2907)
- fix: display more definitive reason for unknown errors (#2911)
- fix: persist scanlator and language chapter filters to database (#2895)
- fix: readme mentioning the app supports android 7
- fix: resolve mangaball parse error for chapter volumes (#2882)
- fix: smart order for null volumes when chapter number resets (#2903) (@D-Brox)
- fix: update manga cover in library screen when changed (#2908)
- perf: add distinctUntilChanged to filterPreferencesFlow in LibraryViewModel (#2873)
- perf: apply macro-performance optimization with asSequence in LibraryViewModel (#2910)
- perf: defer notification channel creation to background coroutine (#2892)
- perf: defer scroll state reads using derivedStateOf in ExpressivePicker (#2905)
- perf: defer scroll state reads using snapshotFlow in feed lists (#2904)
- perf: optimize database query in FollowsSyncProcessor to batch N+1 calls (#2881)
- perf: optimize list operations by replacing filter.map chains with mapNotNull (#2865)
- perf: optimize tracking count calculations in StatsViewModel (#2909)
- perf: prevent redundant updates in LibraryViewModel (#2877)
- perf: reduce memory allocations in getUserScore using mapNotNull (#2889)
- perf: refactor MangaDetailScreenState into distinct StateFlows (#2866)
- perf: replace N+1 queries with bulk IN fetch in Browse/Display repo (#2886)
- perf: replace N+1 queries with chunked bulk fetch in cleanupDownloads (#2874)
- perf: replace N+1 query with bulk chunked fetch in DisplayManga.resync (#2872)
- perf: use suspending executeOnIO instead of executeAsBlocking in IO coroutines (#2891)
- ref: [state/concurrency restructure] use observeAndUpdate for preference observation (#2868)
- ref: disable global cleartext traffic allowance (#2869)
- ref: extract chapter filter calculation into CalculateChapterFilterUseCase (#2867)
- ref: extract merged manga logic from MangaViewModel to UseCases (#2879)
- ref: extract tracking refresh logic to isolated UseCase (#2884)
- ref: extract TrackingCoordinator into individual UseCases (#2890)
- ref: migrate WebtoonViewer from RxJava to Coroutines (#2870)
- ref: remove outdated language filtering TODO in SimilarHandler (#2887)
- ref: replace some hardcoded padding with theme sizes (#2902)
- ref: save aggregate data to db for dynamic covers(#2900)
- style: resolve UtilityClassWithPublicConstructor code smell in NekoColors (#2888)
- chore: bump version
- test: [ChapterItemSort] test coverage (#2912)
- test: [Manga] test coverage (#2871)
Downloads & Checksums
| Variant | SHA-256 Checksum |
|---|---|
arm64-v8a
| d255801f294cc19a662d3c23271da6f84d5d2443f67c0aad2ddf4f3302d77d7d
|
armeabi-v7a
| 97686b4263e9d9af74357d77ce966093e2a43ecdc00062649bc1e6eda9bb3daf
|
universal
| 99950634ab27aeba101fc1607a0b0e16ae0815023dcf249497f7a1fed7be65fa
|
x86
| 2c1acce901d199d48f4375480f405aafba8306ca01c9582023f4d37e95f140bd
|
x86_64
| c17aedd6efd3d80cee1fd0de387404b075c90c641b4a75511731db6b802650e3
|