Commit Graph
1085 Commits
Author SHA1 Message Date
AntsyLich 43de88c718 Update navigationevent to stop back gestures crashing closed screens 2026-10-12 22:33:30 +06:00
AntsyLich 6c1b0702ba Use the beta Compose BOM
The alpha BOM's 2026.10.00 has the same Compose and Material 3 versions as the
beta one, but it keeps material3-adaptive on alpha. Tracker search now reads the
locale from composition, since Locale.current is deprecated.

Closes #4065
2026-10-10 17:37:44 +06:00
Mend Renovate 157679bba5 Update spotless to v8.10.4 (#4063) 2026-10-10 07:23:12 +00:00
Mend Renovate 5b3505bf5f Update sqldelight to v2.4.1 (#4064) 2026-10-10 07:07:21 +00:00
Mend Renovate 2f5b9c1641 Update kotlin monorepo to v2.4.21 (#4061) 2026-10-10 07:06:15 +00:00
Mend Renovate 24bd3c95a5 Update Gradle to v9.8.1 (#4060) 2026-10-10 07:05:34 +00:00
Mend Renovate 7f2b4962b7 Update dependency com.google.firebase:firebase-bom to v35 (#4066) 2026-10-10 07:05:19 +00:00
Mend Renovate 8d39153569 Update androidx.paging to v3.5.2 (#4058) 2026-10-10 06:40:17 +00:00
w d1e71ab58f Bump webgpuviewer (#4051) 2026-10-09 23:55:31 +06:00
AntsyLich a80027ff36 Update icons and move remaining to Material Symbols (#4057)
* Update Simple Icons to 16.34.0

The brand paths are unchanged; only the version in the headers moves.

* Use the current Material Symbols names

Several symbols were renamed after the Valkyrie migration. people_alt,
new_releases, screen_lock_*, screen_rotation and stay_current_* are only
aliases in the font now, for group, verified and the mobile_* symbols.
done, push_pin and expand_less/expand_more become check, keep and
keyboard_arrow_up/down, which draw the same or an almost identical glyph.

* Use filled icons where the Material Symbols migration dropped the fill

The migration mapped Filled and Default references to the outline symbols,
but the classic glyph was often solid, and Outlined Warning, Error and
Pause were solid as well. Each call site was compared against the rendered
classic glyph, and the solid ones now use RoundedFilled. view_list needs an
auto-mirrored filled pack. The outline SVGs this leaves unused are removed.

* Show a compact grid icon for the compact display modes

Compact and cover-only grids showed the same view_module icon as the
comfortable grid.

* Generate notification and layout drawables from Material Symbols

Notifications and XML layouts can't use ImageVectors, so they relied on
hand-kept copies of classic Material drawables. A build-logic task now
converts an opt-in list of the module's SVGs with AGP's Svg2Vector into
generated resources. sdk-common is taken from AGP's own dependency metadata,
so its version always matches AGP.

Compose call sites that only needed a drawable (tab close, crop) use the
ImageVectors instead. The icons module's R class must be imported as
MaterialSymbolsR, enforced by spotless, so it isn't mistaken for the app's R.

* Redraw custom icons in the Material Symbols style

The reading mode, crop off, mark previous as read and chapter download
icons were drawn in the classic style. They are rebuilt from Material
Symbols shapes (mobile_gear, mobile_arrow_right/down, crop,
arrow_circle_down, downloading) in a new custom-material-symbols module;
each SVG header lists where its parts come from. The default reading mode
and incognito use mobile_gear and eyeglasses_2 as they are.

ReadingMode holds an ImageVector now, and the module's R class follows the
same alias rule as MaterialSymbolsR.

* Use Material Symbols for the launcher shortcuts

Updates uses release_alert because the symbol named new_releases is now a
check badge.

* Rename the animated icon drawables

anim_*_enter no longer fits now that the icons play in both directions.
This is a pure rename so the following commits show only content changes.

* Use Material Symbols for the bottom navigation icons

The library, updates, history and browse animations are rebuilt from the
outline and filled symbols but keep their original motion: the white inside
is pushed into the ribbon, the "!" and the needle, and the history ring
still spins. Updates uses release_alert, like the shortcut. More already
matches more_horiz and is unchanged.

* Use rounded bars for the manga description caret

The animation is unchanged; the bars get rounded ends to match the
Material Symbols stroke.

* Settle the browse tab icon when selecting and deselecting

The compass turns a full turn and settles with overshoot both ways, instead
of deselecting by playing the select animation backwards. A
rememberAnimatedVectorPainter overload takes separate enter and exit
animations and doesn't animate on the first composition.
2026-10-09 17:50:12 +00:00
Mend Renovate f35bc341ae Update dependency com.cheonjaeung.compose.grid:grid to v2.9.0 (#4041) 2026-10-04 12:06:42 +06:00
Mend Renovate a7a8cc8343 Update dependency com.mohamedrejeb.richeditor:richeditor-compose to v1.2.1 (#4030) 2026-10-04 11:55:19 +06:00
w 98ba693054 Bump webgpuviewer (#4029)
* Add crop for long strip

* Don't save all animation frames in memory

* Fix navigation

* Update libs.versions.toml
2026-10-02 03:30:24 +06:00
w 65d7110e1e Remove libvips based imagedecoder and add progressive rendering (#4023) 2026-09-29 03:11:45 +06:00
MajorTanyaandMitchell Syer ec614bb4c3 Use Apollo GraphQL for Trackers with GraphQL APIs (#3827)
* Add Apollo for GraphQL interactions

* Migrate AniList to use Apollo

* Migrate Shikimori to use Apollo

Not all Shikimori requests can be served by their GraphQL API (notably
they do not offer any mutations), so those remain as-is.

* Migrate Suwayomi to use Apollo

Includes leveraging some slightly newer Suwayomi features,
specifically the Double/Float filter fixes first pre-released in
2.1.1985 on 2025-10-26 and first fully released in 2.1.2100 on
2026-05-08.

Considering the tachiyomix 1.6 extension lib changes were added in
Suwayomi 2.3.2223 on 2026-06-30, I think it is fair to depend on such
sorta-recent behaviour.

* Fix temp migration names and leftovers

* Create ApolloResponse.dataOrElse extension

Because Apollo doesn't throw exceptions and instead just provides them
as response attributes, the current ApolloResponse.awaitSuccess() is
useless and will be removed shortly.

This new extension function should wrap the basic handling of an
ApolloResponse object neatly.

Co-authored-by: Mitchell Syer <6090655+Syer10@users.noreply.github.com>

* Use dataOrElse in AnilistApi.kt

* Use dataOrElse in ShikimoriApi.kt

* Use dataOrElse in SuwayomiApi.kt

* Delete obsolete ApolloCall.awaitSuccess

* Migrate Kitsu to use Apollo

Kitsu has some unfortunate edges in its GraphQL API (such as returning
nonstandard bodies which don't play well with Apollo) but this should
be an equivalent implementation.

* Extract a MangaFragment for AniList

This simplifies the queries and the converters (which can now delegate
to the MangaFragment.toTrackSearch() method internally and adjust the
track as needed).

Also move the toALUser converter to AnilistUtils.kt to keep all
converters together.

Added a scalar-mapper for AL's CountryCode type.

* Minor consistency cleanup of the queries

* Store list entry ID not title ID for Shikimori

* Extract common MangaFragment for Shikimori

Also map the ISO8601Date to a Kotlin String in the service config.

* Map Kitsu's ISO8601DateTime to kotlin.time.Instant

Utilises Apollo's own adapter-core library which provides the mapper.

Requires opting in to ExperimentalTime until the library resolves the
outdated annotation.

Co-authored-by: Mitchell Syer <6090655+Syer10@users.noreply.github.com>

* Replace Kitsu TODO comment

So much for STOPSHIP preventing me shipping this...

* Bump Apollo version to 5.1.0

* Bump apollo-adapters-core to 0.8.0

Freshly released just earlier.
This resolves having to opt in to ExperimentalTime.

* Make new utils internal to align with #3908

* Fix leftover issues from merged #3828

This PR restructured the AniList and Kitsu user objects.

* Bump apollo to 5.2.0

* Remove unused attributes from queries

* Allow custom exception handler in dataOrElse

Enables callers to manually handle specific non-200 responses.

Callers MUST close the `ApolloHttpException.body` attached to the
passed exception to avoid resource and socket leaks.

Defaults to current behaviour of (re)throwing the status code with our
HttpException.

Utilized in KitsuApi.kt to specially handle Kitsu sending a 500 error
response when deleting library IDs not actually in a user's library
and falling back to the "throw as HttpException" if it's any other
error response.

* Rethrow networking/IO exceptions

This helps to avoid masking networking problems as "This isn't in your
list" problems.

Currently, the app shows "Failed to connect to ..." when the remote
server is unreachable (e.g. downtime, DNS block, etc) because that's
the message provided by the ConnectException thrown by Android's
network stack.

This change restores that behaviour, approximately.

Not the most elegant solution but it _should_ avoid false-positive
toasts.

---------

Co-authored-by: Mitchell Syer <6090655+Syer10@users.noreply.github.com>
2026-09-28 10:34:26 +06:00
Mend Renovate 59fdf7e7fa Update dependency androidx.work:work-runtime to v2.12.0 (#4015) 2026-09-28 08:55:38 +06:00
Mend Renovate 7451c228e6 Update Gradle to v9.8.0 (#4016) 2026-09-28 08:55:25 +06:00
Mend Renovate 7f4c55176f Update dependency androidx.annotation:annotation to v1.11.0 (#4014) 2026-09-28 08:39:33 +06:00
Mend Renovate 9b4c3115db Update spotless to v8.10.3 (#4013) 2026-09-28 08:39:19 +06:00
Mend Renovate f835398094 Update metro to v1.4.5 (#4012) 2026-09-28 08:39:08 +06:00
Mend Renovate 3542143b40 Update dependency androidx.webkit:webkit to v1.17.1 (#4011) 2026-09-28 08:38:55 +06:00
Mend Renovate ba4c04fe74 Update dependency androidx.core:core to v1.19.1 (#4010) 2026-09-28 08:38:41 +06:00
Mend Renovate 087e38ad47 Update dependency androidx.compose:compose-bom-alpha to v2026.09.01 (#4009) 2026-09-28 08:38:29 +06:00
Mend RenovateandAntsyLich 57666e9207 Update sqldelight to v2.4.0 (#3985)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
2026-09-20 15:19:59 +00:00
Mend Renovate 73fef961e9 Update dependency me.zhanghai.android.libarchive:library to v1.1.7 (#3983) 2026-09-20 15:04:35 +00: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 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
Mend Renovate 424bbc53b8 Update coil to v3.6.3 (#3979) 2026-09-20 03:45:51 +06:00
Mend Renovate 504ec2afae Update android.gradle to v9.4.1 (#3982) 2026-09-19 16:49:32 +00:00
Mend Renovate 5848ffb4c4 Update metro to v1.4.4 (#3973) 2026-09-17 13:37:56 +06:00
w a5cd541bdf webgpuviewer: Fix menu hiding when navigating in long strip (#3956) 2026-09-14 21:01:27 +06:00
w 7418f4e7bc Bump webgpuviewer (#3949)
* Continuous background color

* Use ImageDecoder instead of Kim

* Only get tag when in dual mode

* Update libs.versions.toml

* Make progress circle smaller and animate progress

* Fix long strip showing the menu at ends
2026-09-14 03:38:00 +06:00
Mend RenovateandAntsyLich 6ef6e81814 Update dependency com.google.android.material:material to v1.14.0 (#3226)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
2026-09-12 18:23:14 +06:00
Mend RenovateandAntsyLich 855918bbf4 Update dependency androidx.compose:compose-bom-alpha to v2026.09.00 (#3752)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
2026-09-12 18:21:37 +06:00
Mend RenovateandAntsyLich 6c6eff3ab8 Update markdown to v0.45.0 (#3806)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
2026-09-12 18:21:24 +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
Mend Renovate 2292554d97 Update dependency de.stefan-oltmann:kim to v0.40.0 (#3937) 2026-09-12 08:22:15 +00:00
Mend Renovate 918cfb3dda Update dependency androidx.benchmark:benchmark-macro-junit4 to v1.5.0 (#3936) 2026-09-12 08:20:37 +00:00
Mend Renovate 5de262675a Update dependency io.kotest:kotest-assertions-core to v6.2.5 (#3935) 2026-09-12 14:11:48 +06:00
Mend Renovate 9f480564c2 Update dependency androidx.baselineprofile to v1.5.0 (#3934) 2026-09-12 14:10:54 +06:00
w d17ad1e002 Bump webgpuviewer (#3933)
* add disable zoom out

* add hdr

* Fix dual mode page progress and cleanup

* webgpu viewer add page gap setting

* Update libs.versions.toml
2026-09-12 11:57:02 +06:00
Mend Renovate 5f87f7e054 Update dependency androidx.sqlite:sqlite-bundled to v2.7.1 (#3916) 2026-09-10 14:38:45 +06:00