* Add missing @EncodeDefault annotation to MALOAuth
Similar to the situation with Bangumi, the missing annotation means
kotlinx.serialization would _provide_ the default value upon
instantiation but not serialise it to disk. This means the isExpired()
calculation would effectively rarely/never do its job correctly,
leading to Mihon sending expired tokens to MAL and causing problems
for everyone involved.
Overall, this change _could_ (should) lead to a drastic reduction in
MAL requests failing, leading to users having to relink their MAL
accounts.
Also switched createdAt to be in seconds instead of milliseconds as
all other trackers use seconds for timestamps (except for AniList,
which uses milliseconds but doesn't use a createdAt timestamp anyway).
* Add CHANGELOG.md entry
(cherry picked from commit 29ec7c125a3f1a1f39a90f8eba2d3e39b5af9797)
# Conflicts:
# CHANGELOG.md
* Fix Bangumi tracking losing track of login state
kotlinx.serialization does NOT serialize default values (like
createdAt in BGMOAuth.kt), so every time the Bangumi tracker
deserialized the tracker OAuth, createdAt was set to the time of the
read, not the time of issuance.
Separately, BangumiInterceptor did correctly fetch new OAuth
credentials upon detected expiry of the stored credentials and saved
them, but did not use them for the current request (the new
credentials were used for all subsequent requests only). This led to
401 errors from Bangumi because the expired access_token was provided.
A subsequent request using the newly acquired access_token would end
up being successful.
* Add CHANGELOG.md entry
(cherry picked from commit dce6aacf02d07f3f123b19b1b74cbbe18c28852b)
# Conflicts:
# CHANGELOG.md
* Add zoned date & time to debug info & logs
This should help distinguish log entries that happened recently and
may be related to crashes from older entries that occurred before now.
* Change logcat date and time output format
After some discussion, it was decided to adjust the logcat date and
time display to include the year and the timezone in the logcat
output. This results in a line start like this:
`2025-01-27 18:37:46.662 +0100`
which follows the following DateTimeFormatter pattern:
`yyyy-MM-dd HH:mm:ss.SSS Z`
* Add CHANGELOG.md entry
(cherry picked from commit 503d0be66772c37e08e69e5d022475245b706fd1)
# Conflicts:
# CHANGELOG.md
* feat: add searchById support to trackers (MAL, AniList, MangaUpdates only)
* feat: add new preference to toggle auto selection of tracker items using source metadata if available
* feat: add new preference to toggle auto selection of tracker items using source metadata if available
* feat: add automatic title selection using source metadata to TrackInfoDialog.kt
* style: apply spotless
* refactor: remove hardcoded MangaDexSearchMetadata cast and introduce common interface
* Fix MAL manga cover nullability
If a manga doesn't have a cover, MAL doesn't provide the
`main_picture` element in the API response at all.
* Add CHANGELOG.md entry
(cherry picked from commit d60802721b78870082af9445201338fbcfa0a780)
# Conflicts:
# CHANGELOG.md
* Barebones setup (only AniList works)
* Show tracker selection dialog when entry has more than one tracker
* MangaUpdates implementation
* Add logging and toast on error.
* MyAnimeList implementation
* Kitsu implementation
* Fix MAL authors and artists
* Decode AL description
* Throw NotImplementedError instead of returning null
* Use logcat from LogcatExtensions
* Replace strings with MR strings
* Missed a string
* Delete unused Author class.
* Add Bangumi & Shikimori support for info edit (#2)
This adds the necessary API calls and DTOs to allow for editing an
entry's data to the data from a tracker, specifically adding support
for Bangumi and Shikimori.
* Exclude enhanced trackers from tracker select dialog
* MdList implementation
* Remember getTracks and trackerManager
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
---------
Co-authored-by: MajorTanya <39014446+MajorTanya@users.noreply.github.com>
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* Include Coil's broken hardware bitmap device list
Declares all listed devices as unable to use hardware bitmaps.
Might fix#1541.
* Hide Hardware Bitmap Threshold setting if unusable
This hides the setting from the UI if the user's device in on Coil's
list of devices with problematic hardware bitmap implementations.
Also moved HARDWARE_BITMAP_UNSUPPORTED into the ImageUtil as a
property for more ergonomic access across the project.
* Add missing negation
* Update CHANGELOG.md
* Update CHANGELOG.md
* Needs to be and not or
Also fix typo in CHANGELOG.md
---------
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 7f2cfb5eb224896d6d0ffa6960f0a98c7325e240)
# Conflicts:
# CHANGELOG.md
# core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt
In short:
- fetch & show actual summary
- fallback to "name" if "name_cn" is empty
- request larger responseGroup to get & display the summary & rating
- add type filter query param to make Bangumi filter, not us
Previously, we only displayed the "name" in the summary area and used
"name_cn" as the entry name. However, "name_cn" (Chinese name) can be
an empty string at times, resulting in an awkward looking search
result list where some, many, or even all the results have no title
displayed and only show the "name" (Japanese name) in the summary
area. This has been solved by using "name" as a fallback value should
"name_cn" be empty.
If a Chinese name is available, the original name is prepended to the
summary with the addition "作品原名:" (meaning "original series title").
By using the "responseGroup=large" query parameter, we can request
the required data we need to display the actual summary for an entry
and the entry's average rating.
The "name" is prepended to the summary contents, if any exist, so it
is still accessible for series identification if a "name_cn" exists
too and was used for the result title.
Adding the "type=1" filter query parameter means Bangumi will only
return entries of type 1 ("book") instead of all types and Mihon
needing to filter, resulting in potentially missed entry matches.
(cherry picked from commit 78f9a84b14e0ece988f80d61011f63c0f7e92a67)
# Conflicts:
# CHANGELOG.md