AntsyLich
4df0e6b168
Keep category orders unique while reordering
...
Reordering first moves every category to a temporary negative position, then assigns the final ones, so two categories never share a position mid-update. Deleting a category no longer renumbers the system category.
2026-09-27 22:37:39 +06:00
AntsyLich
986f46c09a
Merge manga favorite related fields into favorite_at
...
Migration 16 replaces favorite, date_added and favorite_modified_at with one nullable favorite_at. A favorite whose date_added is 0 falls back to favorite_modified_at. Manga.favorite and dateAdded become getters derived from it, and restore merges it by taking the earliest non-zero time.
2026-09-27 22:37:02 +06:00
AntsyLich
f8fff318ba
Build manga and chapter updates with a lambda and track assigned fields
...
MangaUpdate and ChapterUpdate are built with a lambda that records which fields were assigned, so an update writes only those fields.
2026-09-27 22:36:13 +06:00
AntsyLich
306befb214
Restrict raw database access to the data module
...
app no longer touches the database directly. Backup restore's queries move into a new RestoreRepository in :data, which restores a batch of entries all or nothing, stopping between entries if cancelled, as before. The remaining direct calls (excluded scanlators, clear database, backup creation, store and category restore) go through their repositories, and the database bindings move from AppBindings into :data.
2026-09-27 22:30:51 +06:00
AntsyLich
a4abb6292b
Split the universal update queries into case-specific ones
...
Source-owned fields move out of MangaUpdate/ChapterUpdate into MangaRemoteUpdate/ChapterRemoteUpdate, which only UpdateMangaFromRemote and SyncChaptersWithSource write. Backup restore gets its own updateFromBackup queries for entries and chapters, writing only what a backup carries.
2026-09-27 21:50:38 +06:00
AntsyLich
c67a33f3d4
Remove unused sync scaffold
...
Drops the unused version, is_syncing and last_modified_at columns and their triggers.
2026-09-27 21:47:12 +06:00
AntsyLich
93a163f96e
Only upload Crashlytics mapping file when building for release
2026-09-20 19:56:59 +06:00
AntsyLich
61680580dd
Simplify build flags setup with distribution profile
2026-09-20 19:46:27 +06:00
AntsyLich
0de91a9c53
Remove redundant dimens.xm in :app
2026-09-20 16:36:15 +06:00
AntsyLich
2c979d2d32
Enable android.nonTransitiveRClass
2026-09-20 16:32:33 +06:00
AntsyLich
2b9cb4ca5a
Refactor GenerateLocalesConfigTask to run when string files updates
2026-09-20 04:58:39 +06:00
AntsyLich
427e105840
Enable Gradle isolated projects
2026-09-20 04:58:39 +06:00
AntsyLich
12fbb13df5
Enable Gradle configuration cache
2026-09-20 04:58:38 +06:00
AntsyLich
c69b14c975
Bump compileSdk to 37.2
2026-09-20 04:58:38 +06:00
AntsyLich
debab6c261
Enable Gradle Tooling parallelism explicitly
...
Android Studio disables the backward compatibility that Gradle has for Tooling parallelism https://cs.android.com/search?q=org.gradle.tooling.parallel.ignore-legacy-default%3Dtrue&sq=
2026-09-20 04:58:38 +06:00
AntsyLich
1c43addeca
Resolve Injekt dependencies directly from the Metro graph ( #3965 )
...
The previous setup had a circular dependency between Injekt
registration and extension loading.
In regard to #3931 , I've moved the culprit ExtensionManager out of
Injekt altogether, alongside CoverCache, PreferenceStore and
TrackPreferences, none of which a source needs.
2026-09-15 15:57:48 +06:00
AntsyLich
fdc2d40a1d
Reload extensions when relevant settings are updated ( #3954 )
2026-09-14 22:41:53 +06:00
AntsyLich
e6d8efe6f8
Expose installed extensions that failed to load ( #3953 )
2026-09-14 21:34:55 +06:00
AntsyLich
0e0bc6972a
Allow user to load installed extensions regardless of content warning ( #3952 )
2026-09-14 21:22:32 +06:00
AntsyLich
0fbaa1ecec
Replace extension NSFW flag with content warning app-wide ( #3951 )
2026-09-14 15:00:06 +00:00
AntsyLich
60e74b8d8f
Don't try to create slider state when slider can't or won't be rendered ( #3941 )
2026-09-12 22:34:39 +06:00
AntsyLich
d435dd9217
Switch to upstream Injekt
...
The patch is redundant given we switched to Metro DI and don't use `Injekt.addSingletonFactory` anymore
2026-09-12 16:04:58 +06:00
AntsyLich
f7da5c856a
Switch to upstream sqldelight-androidx-driver
...
The deadlock issue should be fixed upstream
2026-09-12 16:03:50 +06:00
AntsyLich
737fdbfbf0
Switch to upstream FlexibleAdapter
...
Closes #3932
Upstream published to Maven Central
2026-09-12 16:03:50 +06:00
AntsyLich
802958b1ea
Bump compileSdk to 37.1
2026-09-12 15:28:40 +06:00
AntsyLich
34a33ed4f8
Use filled icon for library continue reading button
2026-08-30 23:30:28 +06:00
AntsyLich
7f342ca076
Use built-in DelegateLastClassLoader for extensions ( #3874 )
...
Assisted-by: Claude:claude-opus-5
2026-08-29 16:07:51 +00:00
AntsyLich
b695940114
Switch to Material Symbols and use Valkyrie for ImageVector generation ( #3873 )
...
* Add material symbols icon module
Assisted-by: Claude:claude-opus-5
* Replace material icons with material symbols
Assisted-by: Claude:claude-opus-5
* Add simple icons module and migrate CustomIcons
Assisted-by: Claude:claude-opus-5
2026-08-29 21:39:55 +06:00
AntsyLich
5fadea61e7
Make the source manager surface suspend ( #3869 )
...
Assisted-by: Claude:claude-opus-5
2026-08-28 23:36:28 +06:00
AntsyLich
270b78ba95
Wait for extensions to load before the list is propagated ( #3841 )
2026-08-22 20:37:01 +00:00
AntsyLich
46c8f07c12
Limit vertical divider height in global search toolbar ( #3839 )
2026-08-22 19:56:26 +00:00
AntsyLich
a2c24ff042
Use upstream scaffold ( #3834 )
2026-08-22 02:22:45 +00:00
AntsyLich
3e98c15b74
Remove duplicate in strings.xml
2026-08-17 05:09:13 +06:00
AntsyLich
b2015d1ef3
Migrate to Metro DI ( #3608 )
...
Assisted-by: Claude:claude-opus-5
2026-08-16 18:47:48 +00:00
AntsyLich
5fa5f7e159
Load extensions off the main thread ( #3788 )
...
Assisted-by: Claude:claude-opus-5
2026-08-16 16:35:38 +00:00
AntsyLich
ed30766a9f
Match WebGPU reader background and transition colors to the old reader ( #3765 )
...
Assisted-by: Claude:claude-opus-5
2026-08-14 20:50:56 +00:00
AntsyLich
b1efee47f5
Replace StateViewModel with explicit backing fields ( #3763 )
...
Assisted-by: Claude:claude-opus-5
2026-08-14 19:53:06 +00:00
AntsyLich
d00efa4bfc
Make LibraryViewModel collect library only while subscribed ( #3762 )
...
Assisted-by: Claude:claude-opus-5
2026-08-14 19:39:22 +00:00
AntsyLich
b1a9a05926
Make UpdatesViewModel collect updates only while subscribed ( #3761 )
...
Assisted-by: Claude:claude-opus-5
2026-08-14 19:39:04 +00:00
AntsyLich
b393088cfa
Rename preview build type to nightly and label FOSS builds ( #3760 )
...
Assisted-by: Claude:claude-opus-5
2026-08-15 01:20:55 +06:00
AntsyLich
77a1a5afbd
Make ExtensionsViewModel collect extensions only while subscribed ( #3729 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 20:05:11 +06:00
AntsyLich
a494ebd791
Make HistoryViewModel collect history only while subscribed ( #3728 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 20:04:41 +06:00
AntsyLich
c68efd0e86
Make DownloadQueueViewModel collect downloads only while subscribed ( #3727 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 20:04:29 +06:00
AntsyLich
ae37c1651a
Make ExtensionDetailsViewModel collect sources only while subscribed ( #3726 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 20:04:17 +06:00
AntsyLich
62288c08fb
Make UpcomingViewModel collect manga only while subscribed ( #3725 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 20:04:05 +06:00
AntsyLich
3cb9883d62
Make MigrateSourceViewModel collect sources only while subscribed ( #3723 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:59:17 +06:00
AntsyLich
fab4cbd279
Make MigrateMangaViewModel collect favorites only while subscribed ( #3722 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:59:04 +06:00
AntsyLich
6c0058d230
Make SourcesViewModel collect sources only while subscribed ( #3721 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:58:52 +06:00
AntsyLich
2aec7d19c0
Make CategoryViewModel collect categories only while subscribed ( #3720 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:58:41 +06:00
AntsyLich
bb9767c9df
Make SourcesFilterViewModel collect sources only while subscribed ( #3719 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:58:30 +06:00
AntsyLich
864281af7d
Make ExtensionFilterViewModel collect languages only while subscribed ( #3718 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:58:18 +06:00
AntsyLich
f6aad7497e
Make ExtensionStoresViewModel collect stores only while subscribed ( #3717 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:58:06 +06:00
AntsyLich
0834884335
Make MangaCoverViewModel collect manga only while subscribed ( #3716 )
...
Assisted-by: Claude:claude-opus-5
2026-08-08 11:57:55 +06:00
AntsyLich
68aa4b003f
Don't recheck for updates on configuration change ( #3708 )
2026-08-06 21:38:28 +06:00
AntsyLich
aa25b3a14c
Download app update without WorkManager ( #3707 )
2026-08-06 21:38:07 +06:00
AntsyLich
869fa1a4b2
Suppress R8 warnings for missing androidx.window extension classes
2026-08-05 23:14:47 +06:00
AntsyLich
df6507256a
Release v0.20.4
2026-08-05 22:27:07 +06:00
AntsyLich
21c6357967
Replace CategoryUpdate with dedicated update queries ( #3693 )
...
Assisted-by: Claude:claude-opus-5
2026-08-05 00:40:08 +06:00
AntsyLich
81e0754c0d
Release v0.20.3
2026-08-04 16:58:34 +06:00
AntsyLich
f7a1ecd251
Fix reader loading indefinitely in some scenarios ( #3686 )
...
Init the reader from the view model instead of the activity so it isn't
cancelled by a configuration change mid init, which left the retained
view model half initialized and needsInit() returning false.
Assisted-by: Claude Code:claude-opus-5
2026-08-03 23:51:17 +06:00
AntsyLich
55be95dd5d
Improve WebView spoofing ( #3678 )
...
- Spoof `Sec-CH-UA` client hints to match the user agent
- Fix `X-Requested-With` spoofing leaking to unrelated callers
- Update default user agent to Chrome 149
2026-08-02 20:05:21 +06:00
AntsyLich
0648e2eaaf
Release v0.20.2
2026-08-01 21:32:00 +06:00
AntsyLich
4296d056b5
Regenerate baseline profiles
2026-07-30 20:47:17 +06:00
AntsyLich
7aaa891aef
Improve app update prompt flow experience ( #3669 )
2026-07-30 20:36:19 +06:00
AntsyLich
d15a05602a
Check for app and extension update on every cold start ( #3658 )
2026-07-30 01:17:10 +06:00
AntsyLich
069e5c91ac
Collect data on device preferred abi
...
Mainly to analyze if it's worth making binaries for x86 and 32Bit devices
2026-07-25 20:32:23 +06:00
AntsyLich
9c3cc1ca5f
Convert :source-api and :source-local to android library module ( #3636 )
...
- There's really no plan to support other platforms on this code base
- The "KMP" modules only had android target which is rather pointless
- `i18n` involves more work but given it has no actual code keeping it as is
2026-07-23 16:47:24 +00:00
AntsyLich
98705910e7
Fix crash caused by inaccessible view model classes during creation ( #3609 )
2026-07-19 14:06:01 +00:00
AntsyLich
98bb731b4d
Remove non cancellable call when trying to init reader
2026-07-16 18:23:43 +06:00
AntsyLich
c3b99aea07
Migrate to AndroidX ViewModel from Voyager ScreenModel ( #3594 )
2026-07-15 21:19:11 +06:00
AntsyLich
cb2617dee0
Add fastlane metadata ( #3564 )
2026-07-11 20:01:33 +06:00
AntsyLich
b4635c41a8
Fixed app bars remaining visible after changing pages by tapping in the paged reader after using the chapter navigator slider ( #3567 )
2026-07-10 13:35:16 +00:00
AntsyLich
b2ca6bc5f3
Revert "Disable resumable image downloads"
...
This reverts commit 3d3bd49d1c .
2026-07-10 00:08:26 +06:00
AntsyLich
a8d3e39779
Release v0.20.1
2026-07-10 00:07:57 +06:00
AntsyLich
3d3bd49d1c
Disable resumable image downloads
2026-07-10 00:06:59 +06:00
AntsyLich
4a66b8b5df
Fix HTTP Error 416 not being handled properly for resumable downloads
2026-07-10 00:03:07 +06:00
AntsyLich
aa434285b2
Remove flag to disable code shrinking
...
androidx.benchmark plugin adds non minified versions of the release variants. we can just reuse that.
2026-07-09 23:22:30 +06:00
AntsyLich
91e967128d
Regenerate baseline profiles
2026-07-09 23:06:33 +06:00
AntsyLich
abef1cb8c5
Add proguard rule for com.squareup.zstd
2026-07-09 22:46:40 +06:00
AntsyLich
75f506836c
Fix app not reading tachiyomix.extensionLib extension metadata 2 ( #3559 )
2026-07-09 08:31:34 +00:00
AntsyLich
44780e74b5
Add vertical chapter navigator for paged reader with height adjustment option ( #3531 )
2026-07-09 08:11:56 +00:00
AntsyLich
0ff654205f
Update aboutLibraries to v15 ( #3553 )
2026-07-08 17:13:18 +00:00
AntsyLich
a313c747f3
Fix reader navigator slider steps not updating after changing chapter ( #3549 )
2026-07-08 16:58:45 +00:00
AntsyLich
66b390c62a
Fix app not reading tachiyomix.extensionLib extension metadata ( #3545 )
...
Android was interpreting the field as a float and failing (which is nuts imo)
Also cleaned up the lib validation logic
2026-07-08 07:43:17 +00:00
AntsyLich
3b078331a0
Fix support for non-system SAF providers ( #3530 )
2026-07-06 23:14:24 +06:00
AntsyLich
b8e5f22c01
Add proguard rules to keep Serializable writeReplace and readResolve
2026-07-05 22:21:04 +06:00
AntsyLich
c3bf7a78c0
Fix crash when putting app in background ( #3523 )
2026-07-05 11:51:10 +06:00
AntsyLich
94b3b5eaa2
Revert "Fix crash when putting app in background while on notes screen ( #3515 )"
...
This reverts commit 76cc04c8f4 .
2026-07-04 15:18:40 +06:00
AntsyLich
27284a40ab
Fix crash trying to select text in notes screen ( #3516 )
2026-07-03 23:32:03 +06:00
AntsyLich
76cc04c8f4
Fix crash when putting app in background while on notes screen ( #3515 )
2026-07-03 23:25:29 +06:00
AntsyLich
dfed97edc8
Address compose and xmlutil deprecations ( #3507 )
2026-07-02 19:15:42 +00:00
AntsyLich
a82ccea6f5
Update voyager to 2.2.21-1.10.3 ( #3466 )
2026-06-27 08:53:33 +06:00
AntsyLich
19f1d00fcb
Release v0.20.0
2026-06-27 05:58:04 +06:00
AntsyLich
6c6a07c0c0
Ensure app shortcuts use correct color scheme on preview builds ( #3473 )
2026-06-26 14:25:19 +06:00
AntsyLich
8e323e30de
Update store decoding to account for new CONTENT_WARNING_UNSPECIFIED ( #3472 )
2026-06-26 07:24:53 +00:00
AntsyLich
735cea35f9
Ensure all tachiyomix required dependencies are present ( #3465 )
2026-06-23 18:19:27 +00:00
AntsyLich
41265cce32
Query for new tachiyomix metadata from extensions ( #3464 )
2026-06-23 18:04:44 +00:00
AntsyLich
c397d657d1
Remove BrotliInterceptor from default client ( #3458 )
2026-06-23 19:40:02 +06:00
AntsyLich
1cb38a1c33
Bump version code
2026-06-22 00:51:22 +06:00
AntsyLich
b3e190c627
Refactor baseline profiles generation and regenerate ( #3434 )
2026-06-22 00:50:24 +06:00