Commit graph

51 commits

Author SHA1 Message Date
AntsyLich
6fa34ab5e9
Seperate mark duplicate read chapters as read behaviors as options (mihonapp/mihon#1870)
(cherry picked from commit 8a3b6107755c768924a31c2b58d705296133839c)
2025-03-23 23:42:33 +07:00
AntsyLich
49aaf5b8e3
Make option to mark duplicate chapter as read apply when reading (mihonapp/mihon#1839)
(cherry picked from commit 22b5fb58ff8e89635d646f8fa29256b53c41ffbf)
2025-03-09 17:02:15 +07:00
AntsyLich
b22a8ac66b
Make more sliders discrete and ensure they don't look out of place (mihonapp/mihon#1840)
Also cleanup the underlying code

(cherry picked from commit 4f06c1cc09d15245b26b8a862738cb6a859fedcc)
2025-03-09 16:56:07 +07:00
AntsyLich
fac25b14b1
Change label of setting to always use SSIV in long strip reader (mihonapp/mihon#1834)
(cherry picked from commit 85d168ed5e201134558cc843aba896306617c9ca)
2025-03-08 01:26:19 +07:00
Cuong-Tran
d8832a7e32
Bump default user agent 2025-03-08 01:26:15 +07:00
FlaminSarge
6e291c1510
Attempt to fix crash when migrating or removing entries from library (mihonapp/mihon#1828)
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 563bc02113a5ebc53650fdfdd13f408284a0cdc8)
2025-03-08 01:26:15 +07:00
NarwhalHorns
7d1ee6c587
Display staff information on Anilist tracker search results (mihonapp/mihon#1810)
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit b702603965044cfe3ee852f8d0c970b6eb93b97a)
2025-03-08 01:26:11 +07:00
Roshan Varughese
9183c19cd2
Fix an issue where tracker reading progress is changed to a lower value (mihonapp/mihon#1795)
(cherry picked from commit 2e2f1ed82d63a93ebf87ee8494434c1bad2e268c)
2025-03-08 01:26:07 +07:00
AntsyLich
5a5b86d3c6
Add option to mark new duplicate read chapters as read (mihonapp/mihon#1785)
(cherry picked from commit cd0481592c09dc9cfb331805e90e6e5c3752a08c)
2025-03-03 14:34:16 +07:00
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
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
69adc4605e
Improve support for drag-and-drop category/feed reordering (mihonapp/mihon#1427) 2025-02-26 23:38:53 +07:00
Cuong-Tran
0a6caab64b
Add Xiaomi system app to list of invalid browsers (mihonapp/mihon#1776) 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
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
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
AntsyLich
e062b97f5f
Format CHANGELOG.md
(cherry picked from commit 1a5b4c2804bf87fa566246aaad269cf9466572cb)
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
BrutuZ
54b114820d
Ignore hidden files/folders for Local Source chapter list (mihonapp/mihon#1763)
(cherry picked from commit c97fe71e290604849299f1ebb9dfe1295188ca60)
2025-02-25 12:58:31 +07:00
MajorTanya
db3fa582ce
Add Infinix system app to list of invalid browsers (mihonapp/mihon#1684)
* Add Infinix system app to list of invalid browsers

`com.transsion.resolver` being picked by the system as a suitable
browser caused a Mihon user with an Infinix device to be unable to
open any links in browsers, including tracker login and opening a
WebView page in a real browser.

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>

* Add docstring to DeviceUtil.invalidDefaultBrowsers

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit bfc8320aa4720dc3b908aab1b8a1ffb99d43193b)
2025-02-04 19:30:44 +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
MajorTanya
723e19f399
Add zoned "Current time" to debug info and include year & timezone in logcat output (#1672)
* 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)
2025-01-29 11:13:10 +07:00
sdaqo
19a62fc046
Add option to enable incognito mode per extension (mihonapp/mihon#157)
* add per Extension Incognito Mode

* migrate incognito sources when extension is updated

* remove incognito sources when extension is uninstalled

* remove not used variable

* address change requests

address change requests

* Rebase and cleanup code

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit c283abefb03f79ce6652492db71cde410f828f78)
2025-01-13 10:26:04 +07:00
AntsyLich
a68d35acca
Revert "Revert "Add option to always use SSIV for image decoding""
This reverts commit 1909126921ac78309f7f7c7c2aa85606611531b8

(cherry picked from commit c5655e8803bc32d0931657f0b7bc6afeab70feaf)
2024-12-23 22:13:06 +07:00
MajorTanya
42ac5e0e70
Always use software bitmap on certain devices (mihonapp/mihon#1543)
* Include Coil's broken hardware bitmap device list

Declares all listed devices as unable to use hardware bitmaps.

Might fix mihonapp/mihon#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)
2024-12-06 23:39:22 +07:00
AntsyLich
77863480c9
Revert "Add option to always use SSIV for image decoding"
This reverts commit bb4d9fc81a043ac4f2d0105f19c09974ae2f7201.

(cherry picked from commit 1909126921ac78309f7f7c7c2aa85606611531b8)
2024-11-21 01:14:40 +07:00
AntsyLich
3c1aadca36
Add option to always use SSIV for image decoding
(cherry picked from commit bb4d9fc81a043ac4f2d0105f19c09974ae2f7201)
2024-11-04 12:16:22 +07:00
AntsyLich
3acfcbec21
Bump default user agent 2024-11-01 10:37:52 +07:00
AntsyLich
3a12f5e83e
Fix long strip images not loading in some old devices
Fixes mihonapp/mihon#1398

(cherry picked from commit 06efc3b25c5af51f42448af27a269ee459d9093d)
2024-11-01 10:37:52 +07:00
AntsyLich
d13abbd223
Fix a rare crash when invoking "Mark previous as read" action
Closes mihonapp/mihon#1421

(cherry picked from commit f508d10ad13560d7316df8642bc93fe66c05b9a8)
2024-11-01 10:37:52 +07:00
AntsyLich
3490273afe
Auto format extension repo URLs
Closes mihonapp/mihon#1392
Closes mihonapp/mihon#1393

(cherry picked from commit 22d8aad598bea8f00f2831779e45a6645392ca0f)
2024-11-01 10:37:52 +07:00
MajorTanya
e9f65510c4
Some improvements to Bangumi tracker search (#1396)
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)
2024-10-31 10:54:40 +07:00
AntsyLich
eebcfa7371
Here lies "currentTab was used multiple times"
Fixes #282
2024-10-31 10:51:08 +07:00
Roshan Varughese
4c5c5f45da
Respect privacy settings in extension update notification (mihonapp/mihon#1156)
* Hide Extension Names in Update Notifications when Content is Hidden

* Moving `val` inside if

* [skip ci] Update CHANGELOG.md

(cherry picked from commit 5dc6569a683da47f5323c252fce1bd4094a5d232)
2024-08-26 13:42:23 +07:00
Dani
94acbb08d7
Add option to skip downloading duplicate read chapters (mihonapp/mihon#1125)
* Add query to get chapter count by manga and chapter number

* Add functions to get chapter count by manga and chapter number

* Only count read chapters

* Add interactor

* Savepoint

* Extract new chapter logic to separate function

* Update javadocs

* Add preference to toggle new functionality

* Add todo

* Add debug logcat

* Use string resource instead of hardcoding title

* Add temporary logcat for debugging

* Fix detekt issues

* Update javadocs

* Update download unread chapters preference

* Remove debug logcat calls

* Update javadocs

* Resolve issue where read chapters were still being downloaded during manual manga fetch

* Apply code review changes

* Apply code review changes

* Revert "Apply code review changes"

This reverts commit 1a2dce78acc66a7c529ce5b572bdaf94804b1a30.

* Revert "Apply code review changes"

This reverts commit ac2a77829313967ad39ce3cb0c0231083b9d640d.

* Group download chapter logic inside the interactor GetChaptersToDownload

* Update javadocs

* Apply code review

* Apply code review

* Apply code review

* Update CHANGELOG.md to include the new feature

* Run spotless

* Update domain/src/main/java/mihon/domain/chapter/interactor/FilterChaptersForDownload.kt

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit ca968f162ef7a61a9036b7ab9bea407a6334801d)
2024-08-26 00:08:38 +07:00
MajorTanya
bf87d24d6f
Add PR or commit refs to CHANGELOG.md (mihonapp/mihon#1117)
* [skip ci] Add PR or commit refs to CHANGELOG.md

* [skip ci] Update CHANGELOG.md

* [skip ci] Make usernames, PRs, hashes clickable

GFM autolinking for those is not applied to all Markdown documents.

* Change commit style

* [skip ci] Add ref to #1057

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit aac4d6e548910a2ed1c197ca5d20b49e375aa063)
2024-08-26 00:08:38 +07:00
AntsyLich
88896fe357
Sync compose theme with MDC theme
(cherry picked from commit 9a34ace09c66274e6c2b3f9446058a0fa99d4bd0)
2024-08-13 22:44:59 +08:00
AntsyLich
55d6887379
Create CHANGELOG.md
(cherry picked from commit b404a71e26526844600a9918eb796219667be498)
2024-08-13 02:17:44 +08:00
NerdNumber9
30c12fc9de Get rid of outdated changelog 2018-07-08 15:53:59 -04:00
NerdNumber9
ded22f1717 Finish favorites sync 2018-02-01 13:46:33 -05:00
NerdNumber9
f18b32626a Rewrite link intercept activity
Fix compatibility issues between lewd sources and manga info screen
2018-01-29 15:39:34 -05:00
NerdNumber9
1a811d0917 Code cleanup
Release v6.6.0
Cleanup changelog
2017-12-08 18:21:26 -05:00
NerdNumber9
263cc1d97c See CHANGELOG.md for this commit 2017-12-07 22:25:27 -05:00
NerdNumber9
dec4471871 Second attempt to update changelog
Fix wording in metadata fetch dialog
2017-11-30 21:07:26 -05:00