Commit graph

8412 commits

Author SHA1 Message Date
AwkwardPeak7
6bfb80fe37
Spoof or remove X-Requested-With header from webview (mihonapp/mihon#1812)
(cherry picked from commit 793d7fbe40c87ed233da8cc99d544d01024ed4f5)
2025-03-03 10:48:11 +07:00
Cuong-Tran
389601d2e2
update changelog 2025-03-01 01:19:41 +07:00
Cuong-Tran
181dc1d56e
cancel app update job if updater is not included in build 2025-03-01 00:54:23 +07:00
Cuong-Tran
b831349b37
update haze usage 2025-03-01 00:54:01 +07:00
Cuong-Tran
c5be11aec5
Fix Comick recommendations failed due to empty cover list (#735) 2025-02-27 19:23:40 +07:00
AntsyLich
8cd3243709
Remove alphabetical category/feed sort option (mihonapp/mihon#1781)
Co-authored-by: cuong-tran <cuongtran.tm@gmail.com>
(cherry picked from commit 2b0c28938bfd74577d2ff0736b2cc72f4e4705cf)
2025-02-27 17:13:27 +07:00
Cuong-Tran
f5bbf962fa
turn off updater in Debug 2025-02-27 15:28:45 +07:00
Cuong-Tran
1d2064485f
turn off debug overlay by default 2025-02-27 15:28:26 +07:00
Cuong-Tran
69adc4605e
Improve support for drag-and-drop category/feed reordering (mihonapp/mihon#1427) 2025-02-26 23:38:53 +07:00
Roshan Varughese
013c40fbb3
Add option to export minimal library information to a CSV file (mihonapp/mihon#1161)
(cherry picked from commit fab8b17d99c44a08555b1f584c56d62a47737ca0)
2025-02-26 23:38:53 +07:00
AntsyLich
76b27ea4ba
Use .toUri() extension function
(cherry picked from commit 0dda64b9d80a47a96fb52d13b5e0ece6d5fca2b1)
2025-02-26 23:38:53 +07:00
MajorTanya
4214781af7
Add private tracking support for Kitsu (mihonapp/mihon#1774)
(cherry picked from commit 1dd81ef1e1b383f379f4e8e53d27a47cf7f0278f)
2025-02-26 23:38:53 +07:00
NarwhalHorns
8fe598d33e
Support for private tracking with AniList and Bangumi (mihonapp/mihon#1736)
Co-authored-by: MajorTanya <39014446+MajorTanya@users.noreply.github.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 49b2b346b65c2631a8369c8f6643e945720770de)
2025-02-26 23:38:53 +07:00
MajorTanya
54eea7ccb7
Add "Monochrome" theme (mihonapp/mihon#1752)
This theme is mainly geared towards e-Ink displays with limited/no
colour capabilities. Previous themes like Yin & Yang would make heavy
use of greyscale colours which could look off on some devices.

This theme is probably not conformant to Material Design 3 colour
scheme guidelines, but it does boast some amazing WebAIM contrast
ratios (#FFFFFF text on #000000 background gets a ratio of 21:1, vice
versa too).

Initially, this was intended as a purely black and white theme but
some contrast issues arose, such as the download badges (tertiary
background, onTertiary text colour) having the same colour as unread
badges (primary/onPrimary), or the step indicators (stops) not being
visible on sliders (since they use the colours of the opposite state
track (active region stops are the colour of the inactive region track and vice versa).

To mitigate this, each variant (dark/light) of the theme has one
additional grey mixed in for their tertiary and secondaryContainer
colours each. For the dark variant, this is a #A0A0A0 background for
#000000 text (8.03:1 contrast ratio) and for the light variant, it is
a #505050 background for #FFFFFF text (8.06:1 contrast ratio).
This results in distinct unread vs download badges and visible steps
in the sliders.

---------

Co-authored-by: Sunspark-007 <73711243+Sunspark-007@users.noreply.github.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 8b48d1016b851b425e4f66d44bca098220585c37)
2025-02-26 23:38:53 +07:00
Cuong-Tran
931b7c8b8b
correct non-nullable of TrackMangaMetadata & MUContext 2025-02-26 23:38:53 +07:00
MajorTanya
a1a0d40e91
Fix Bangumi login regression (mihonapp/mihon#1770)
Caused by mihonapp/mihon#1748.

Two different issues actually.

Firstly, the getUsername API call uses the authClient, which uses the
BangumiInterceptor to get the current OAuth data and attach the
Authorization header. However, on login, mihonapp/mihon#1748 did not try to set the
new auth details until after attempting to call getUsername.
This would cause Mihon to think the user was not authenticated with
Bangumi and cancel the process.

This is fixed by having Mihon store the OAuth credentials in the
interceptor first before attempting to call getUsername.

The second issue is a simple trailing dollar sign in the API URL for
the getUsername method. This was removed.

(cherry picked from commit badc229a2312c0c750c34631f303ac4ca970dc71)
2025-02-26 23:38:53 +07:00
MajorTanya
b9da0e57f1
Add back explicit update(track) call to Bangumi (mihonapp/mihon#1771)
Most if not all other trackers do this too. Technically this causes
some request duplication (since things like the BaseTracker's
setRemoteLastChapterRead fire anyway due to the tracker sheet being
open. But considering the reduced number of requests in other places,
I think this is still acceptable.

This change will allow mihonapp/mihon#1736 to proceed, hopefully.

(cherry picked from commit 277d8bad8e8d21cd74dc1681da09a4b980f455e0)
2025-02-26 23:38:53 +07:00
MajorTanya
4bb55a5104
Migrate to Bangumi's newer v0 API (mihonapp/mihon#1748)
This comes with many benefits:
- Starting dates are now available and shown to users
- Lays groundwork to add private tracking for Bangumi, e.g. in mihonapp/mihon#1736
- Mihon makes approximately 2-4 times fewer calls to Bangumi's API
- Simplified interceptor for the access token addition
  - v0 does not allow access tokens in the query string
- There is actively maintained documentation for it

Also shrunk the DTOs for Bangumi by removing attributes we have no
use for either now or in the foreseeable future. Volume data remains
in case Mihon wants to ever support volumes. But attributes such as
user avatars, nicknames, data relating to Bangumi's tag & meta-tag
systems, etc. have been removed or just not added to the DTOs.

Co-authored-by: cuong-tran <cuongtran.tm@gmail.com>
(cherry picked from commit a96fbba3dc354e363b85923c52feceb88dc34447)
2025-02-26 23:38:45 +07:00
Cuong-Tran
707d9854ec
Change backup proto & improve code of backup/restore category related preferences (mihonapp/mihon#1726)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit e1724d1aa0e3340e1404cfd80bd264831d86a879)
2025-02-26 10:29:59 +07:00
Cuong-Tran
ccebe08d00
Reuse AppBar in manga screen (mihonapp/mihon#1367)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 2cd52d5a1ff48b0f9cf17245c1bfa66f99b8c187)
2025-02-26 10:29:59 +07:00
AntsyLich
42748f310f
Cleanup and tweak preference widgets (mihonapp/mihon#1769)
This reverts commit ed2c214ef3

Co-authored-by: cuong-tran <cuongtran.tm@gmail.com>
(cherry picked from commit ebfbbf0741c04dc450a943d2cf77f48eed5c6dfa)
2025-02-26 10:29:59 +07:00
Cuong-Tran
2f33754c20
Fix App's preferences referencing deleted categories (mihonapp/mihon#1734) 2025-02-25 16:41:11 +07:00
Roshan Varughese
3dded3568a
Add button to favorite manga from history screen (mihonapp/mihon#1733)
Co-authored-by: cuong-tran <cuongtran.tm@gmail.com>
(cherry picked from commit 7e71a34256e79b03a8a8ea50334b1ccece4b7154)
2025-02-25 16:41:10 +07:00
NGB-Was-Taken
405e1b8640
Apply "Downloaded only" filter to all entries regardless of favourite status (mihonapp/mihon#1603)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 29ee53f4612b6ec9b399da9d29f18cfd0b1a2768)
2025-02-25 12:58:36 +07:00
Cuong-Tran
c37eac905b
Remove unused MigrationSourcesScreen 2025-02-23 00:26:28 +07:00
Cuong-Tran
8838573a93
Fix: Migrate filter Obsolete was showing E-H/ExH source 2025-02-22 23:45:04 +07:00
Cuong-Tran
d5f41b6c25
priority manga update list 2025-02-20 15:06:54 +07:00
Cuong-Tran
c2bfeb443d
remove MetadataUpdateJob (migrated into LibraryUpdateJob.updateCovers) 2025-02-18 14:58:46 +07:00
Cuong-Tran
4068267cc2
remove unused EhAssets 2025-02-18 13:46:04 +07:00
Cuong-Tran
4c08f61f68
Fix: ktlint config for SY code (#712)
* Add more editor configs and move ktlint config to it (mihonapp/mihon#1731)

(cherry picked from commit 34d1e6fa278846dd8eb6ea82c936818d4610d3c2)

* more ktlint config

* fix compile

* restore comment-wrapping

* restore all of them

* disable in gradle.kts

* cleanup

* remove filenamktlint_standard_filename

* fix filename

* remove unused EhAssets

* ktlint_standard_multiline-expression-wrapping

* property-naming & function-naming

* ktlint_standard_argument-list-wrapping

* fix argument-list-wrapping

* Improve  in case source is null

related to commit 343cd372

* comment

* comment

* comment

* comment

* comment

* comment

* comment

* comment

* Revert "Improve  in case source is null"

This reverts commit 08e317bb075b4b634f0c6f19f11eb78b99406e59.

* Revert "remove unused EhAssets"

This reverts commit e2cfc3e0c2b8d5b8bac41f2dfc4d9baef332f83e.

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
2025-02-18 13:44:57 +07:00
Cuong-Tran
20d0b87b3a
Fix (IntegratedHentaiMigration): correctly migrate old users 2025-02-17 15:22:24 +07:00
Cuong-Tran
1247d4e466
Fix (BrowseSourceScreen): don't expand manga description if it's favorited 2025-02-17 14:37:09 +07:00
Cuong-Tran
ae425f963f
update changelog 2025-02-14 12:50:19 +07:00
Cuong-Tran
2d6cf074ff (EditMergedSettings): Allow open merge children manga 2025-02-14 12:21:26 +07:00
Cuong-Tran
ff8d48bf4c Fix (PreferenceRestorer): correctly backup/restore preferences related to category 2025-02-14 12:21:26 +07:00
Cuong-Tran
a2da8fdd35 Fix (BackupRestorer): avoid issue of late restoring categories
in cases where categories-depend settings/mangas being restored when that category hasn't been restored yet due to running in coroutine
2025-02-14 12:21:26 +07:00
Cuong-Tran
4211fadb43 Fix (MangaRestorer): avoid chapter's order mixed up when backup restore/sync 2025-02-14 12:21:26 +07:00
Cuong-Tran
235dec019d Fix (EXH): Migrate old source to new source for merge references 2025-02-14 12:21:26 +07:00
Cuong-Tran
caa0d9b92e Fix (MangaRestorer): avoid exception caused by duplicate entries
Duplicate chapters or duplicate merge-reference which would leads to the whole manga failed to restore/add to library
2025-02-14 12:21:26 +07:00
Cuong-Tran
58dc3b3e79 chore (MangaRestorer): use getChapterByUrlAndMangaId directly instead of getChapterByUrl then find 2025-02-14 12:21:26 +07:00
Cuong-Tran
f2bf5d8664 chore (MangaRestorer): move sorting Merged source to sort function 2025-02-14 12:21:26 +07:00
Cuong-Tran
ad8a9edc12 also resetup AppUpdateJob after restore preferences 2025-02-14 12:21:26 +07:00
Cuong-Tran
4b8d0331f6
Merge branch 'release' 2025-02-13 22:55:28 +07:00
Cuong-Tran
d127ce9805
rename repo 2025-02-13 22:53:19 +07:00
Cuong-Tran
2c5cc8ef19
bump version 2025-02-13 17:43:27 +07:00
Cuong-Tran
6f7543676b
update changelog 2025-02-13 01:26:01 +07:00
AntsyLich
7d0c9f6f29
Rework slider UI
Fixes mihonapp/mihon#1474

(cherry picked from commit e8c9cb2c2e4c24443368f0d653c5283f9671ffec)
2025-02-06 11:17:06 +07:00
az4521
16b889500b
fixed the dumbest crash in the world
(cherry picked from commit 6ebfbf4246191bd85775f9c14a55f741ca3db9f4)
2025-02-04 19:33:31 +07:00
MajorTanya
3ff0601289
Fix MAL tracker losing track of login expiration (#1682)
* 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)
2025-02-01 13:36:48 +07:00
MajorTanya
9a34d6222d
Fix Bangumi tracker losing track of login expiration (#1681)
* 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)
2025-02-01 13:36:48 +07:00