Commit graph

8701 commits

Author SHA1 Message Date
NGB-Was-Taken
83827f7e8e Fix disabling incognito mode from notification (mihonapp/mihon#2512)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 96e5131358110079587d262d37ec346e10941758)
2025-10-06 16:49:41 +07:00
Guzmazow
136fb7652c Improve spoofing of X-Requested-With header to support newer WebView versions (mihonapp/mihon#2491)
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
(cherry picked from commit 065147472e8e683c47d11f3e00386aba2a7c1bac)
2025-10-06 16:35:26 +07:00
Constantin Piber
e6bddcab14 Delegate Suwayomi tracker authentication to extension (mihonapp/mihon#2476)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 6f635782c22cc0844caa4e4d88cf390005989b0b)
2025-10-06 16:14:46 +07:00
Cuong-Tran
dfc93fab39
fix(deps): update dependency androidx.compose:compose-bom to v2025.09.01 (#1189) 2025-10-06 14:25:15 +07:00
Cuong-Tran
61c6918e11
chore(build): bump version code to 76 and version name to 1.13.4 2025-09-15 12:40:55 +07:00
Cuong-Tran
4aa8f5a201
fix(webtoon-scale): Improve webtoon scale type handling & listener (#1150)
* fix(webtoon): improve webtoon scale type handling and listener invocation

* fix(webtoon): streamline webtoon scale type handling and improve listener invocation

* add retry

* qualifier

* remove listener on destroy to avoid memory leaks

* using an object expression for the listener

* ensure listener is removed only if viewTreeObserver is alive

* refactor layout listener to improve retry logic and ensure proper removal

* using doOnLayout

* use doOnLayout for scaling logic to ensure proper execution after view is laid out
2025-09-15 11:45:32 +07:00
Cuong-Tran
11c26a32fa
chore(dialog): Consistent text style (#1133)
* remove filtered_scanlators (old field not used anymore)

* Improve coding

* Revert "remove filtered_scanlators (old field not used anymore)"

This reverts commit 24042c17a432ff4c5012010155476aedbed3825f.

* consistent text style

* add comment
2025-09-10 12:43:09 +07:00
Cuong-Tran
8f2ab5b87e
fix(merged-manga): Fix download ahead for merged entries (#1132)
* Fix download ahead for merged entries

* correctly handle merged manga
2025-09-10 12:04:29 +07:00
Fermín Cirella
004b63dfb5
feat(library): Add library preference to show empty categories during search/filtering (#1088)
* feat(library): Add library preference to show empty categories during search/filtering

* Add comment back

* Fix formatting

* subscribe to changes & refactor Regex

* format

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-09-10 10:02:36 +07:00
Cuong-Tran
632856c2f2
fix(track): wrongly set track's status when start tracking (#1076) 2025-09-09 13:33:26 +07:00
Cuong-Tran
a0e2d2942a
feat(webtoon): Adaptive scale for wider screen size (#1130)
* feat: Add webtoon scale type option

This commit introduces a new setting for webtoon reading mode that allows users to select a scale type for webtoon images.

The available scale types are:
- Fit Screen
- 16:9
- 20:9
- 4:3
- 3:2

This setting can be found in both the reader settings sheet and the global reader settings.

* mutable

* add to Reader's settings page & fix size calculation

* option for long strip gap preference

* fix: ensure recycler scales to default when screen ratio is less than desired

* hide smart scale for long strip gap preference

* Avoid zero division

* using forEach

* improve readability

* better viewer size calculation & optimize list
2025-09-09 13:20:55 +07:00
Cuong-Tran
683bf172bf
feat(reader): Add zoom option for Automatically zoom wide images (#1124)
* feat(reader): Add zoom option for `Automatically zoom wide images`

* improve
2025-09-05 01:23:35 +07:00
Cuong-Tran
9e5069a376
feat(reader-paged): Add options to disable zoom in or double tap to zoom for paged-reader (#1123) 2025-09-04 17:03:49 +07:00
Stefano Russo
242b980e57
feat(webtoon): Add option to enable/disable pinch to zoom in webtoon viewer (#1101)
* feat: Add option to disable pinch to zoom in webtoon viewer

* Change default settings & also include settings for Paged mode

* refactor webtoon

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-09-04 16:19:54 +07:00
David Brochero
91a208ada2
fix(reader): gifs not animating (#1105)
* fix: gifs not animating

* add missing proguard coil3 rules

* add comment
2025-09-04 13:07:08 +07:00
Cuong-Tran
58eccf9ddb
chore(settings): Always display App Language text in settings (#1122)
* chore(settings): Add App language text all the time

* spotless

* English variants
2025-09-04 12:54:29 +07:00
kana-shii
c41d5fb847
feat(discord): Discord RPC from Anikku (#1100)
* Add RPC [Barebone, barely works]

Co-Authored-By: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>

* refactor connections

* RPC (#223)

* Add error handling and refactor DiscordRPCService methods

* Add Discord RPC customization options and preferences

* Update Discord RPC button labels and clean up comments

* Refactor DiscordRPCService to improve readability by adding braces for null checks

* Refactor ConnectionsPreferences to improve code clarity and organization

* Refactor ConnectionsPreferences to improve code clarity and organization

(cherry picked from commit df42d196368d28c3c9dcee3692f3f9140da7f2a1)

* Feat: implement Discord account management enhancements and RPC restart functionality (#245)

* fix: correct indentation in CastManager for better readability

* feat: implement Discord account management enhancements and RPC restart functionality

(cherry picked from commit b7c50f1f0184dd717c5cc4dee0310053bfb8d613)

* Notification color & icon for DiscordRPC

Co-Authored-By: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>

* Change foss variant application id suffix to '.foss' and more (mihonapp/mihon#1831)

- Remove `BuildConfig.PREVIEW`
- Rename `BuildConfig.INCLUDE_ANALYTICS` -> `BuildConfig.ANALYTICS_INCLUDED`
- Rename `BuildConfig.INCLUDE_UPDATER` -> `BuildConfig.UPDATER_ENABLED`
- Rename build property `with-analytics` -> `include-analytics`
- Rename build property `with-updater` -> `enable-updater`
- Add build property to disable code shrink
- Add build property to include dependency info in apk/app bundle

(cherry picked from commit 0893609ad2c4791dc404d72a5e69a2e0373517ae)

* feat(discord): update App/icon & fully works with all screens

* update Discord Rich Presence application ID and icon URLs

* Fix updateDiscordRPC for all screens (also reuse code)

* integrate Discord Rich Presence for WebViewScreen

* feat: ghibli style images for Discord RPC

* optimize code

* further optimize

* supprest useless warning

* refactor: simplify setScreen calls related to lastUsedScreen

* optimize whole file

* a

Co-Authored-By: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>

* fix(discord): update download button URL to point to the official website

* feat(discord): allow stop Discord RPC from notification

also improve error handling

* fix(i18n): Torrent server "stop" multi-lang

* Start DiscordRPCService as foreground service on Android O+

This commit modifies the `DiscordRPCService` to start as a foreground service on Android O (API level 26) and above. This change ensures the service continues to run in the background, especially when the app is not in the foreground.

- Added a conditional check using `Build.VERSION.SDK_INT` to detect if the device is running Android O or later.
- If the device is running Android O or later, `startForegroundService` is called instead of `startService` to ensure it runs as foreground service.
- If the device is running a version prior to Android O, `startService` is called.

(cherry picked from commit 869617d8cac3aa8461158f1f9a34b9e29147e8f0)

* fix(discord): episode/chapter formating

* fix(discord): Fix & improve Discord login/accounts

* New webview with DiscordLoginScreen

* Add appbar

* Using Webview directly instead of AndroidView and add clearCookies, browsing navigation

* Using coroutine instead of thread

* Revert service

* use response block

* save preference in coroutine too

* no web navigator

* address comments for DiscordLoginScreen

* Refactor Settings screen & dialog

* Using serialization to parse JSON to avoid blocking API

* Don't clear all cookies and web storage aggressively

* Extract constant

* Fix login

Co-Authored-By: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>

* fix(discord): Fix screen crash & token retrievement

* Update images to my liking

* spotless

* small fixes

* Update strings.xml

* Revert "Update images to my liking"

This reverts commit 4ad3b9f84fdada45ee480ae7dc242b6e1b4bc18a.

* small fixes

* hopeful fix + chapter progress

* Update ReaderActivity.kt

* Update ReaderActivity.kt

* remove timestamps

* Remove isNSFW check

because 95% of tachi extensions are rated as +18, even when there is sfw content

* Clean up

* Fix ReaderActivity

* Cleanup Settings

* Fix login

* Fix lag when getting categories

* Fix jump to pages

* Remove old SDK check

* Fix status when back from reading

* Remove pages progress

* Only set necessary action in ReaderActivity

* Using IO coroutine instead

* Add back timestamps

* Fix strings & settings

* Fix crash

* ActivityType

* Adjust description

* refactor Discord settings menu

* Using its own scope

* Optimize the connection waiting

* remove source.isNSFW

* Using screenModelScope

* Fix state access

* add modifier

* sharing OkHttpClient instance for better resource management

* Restart RPC directly via service intent instead of toggling

* remove lint suppression

* add back showProgress

* Fix set Discord status

* Fix Discord login no avatar

* Handle API rate limits and errors in getDiscordUri

* Token-based isLogged checking

* Make Discord token sensitive data and not in backup

* Minor fix

* remove debug message

---------

Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
Co-authored-by: Dark25 <nadiecaca2000@gmail.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
Co-authored-by: Jery <jery99961@gmail.com>
2025-09-04 12:40:32 +07:00
kana-shii
5280caa60d
feat(reader): Download from reader chapter list (#1110)
* Download from reader

* Fix for localsource

* Fix actions for merged entries

* fix spotless

* refactor code

* catching Exception instead of Throwable

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-09-03 18:12:38 +07:00
Cuong-Tran
46f0e26dd3
fix(merged-reader): Fix chapter list's download badge in Reader (#1117)
* Fix chapter list's download badge in Reader

* improve
2025-08-29 18:11:38 +07:00
Cuong-Tran
d385dfe808
fix(merged-chapters) Fix chapter's webview (#1116)
* Fix chapter's webview

* combine null check

* variable name

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-29 18:10:55 +07:00
Cuong-Tran
8cfab79227
fix(merged-entries): Fix manga folder opening and source click (#1115)
* Fix open manga folder

* Fix source click

* fix null

* warning
2025-08-29 17:53:29 +07:00
Cuong-Tran
b067690678
fix(merged-entries): Fix deletion of chapters and data folders in merged entries (#1114)
* fix(merged-entries): Fix delete chapters or data folders

* spotless

* comment

* safely using state.source
2025-08-29 17:00:57 +07:00
Cuong-Tran
21d221a048 chore(library): Using fastFilter, fastAny, fastMap 2025-08-27 14:29:01 +07:00
Cuong-Tran
4e2445d60c feat(library): Optimize trackers filter speed 2025-08-27 14:29:01 +07:00
krysanify
639459f8af Fix crash opening filter sheet with empty library and mark as read/unread for selected items (mihonapp/mihon#2355)
(cherry picked from commit d88dbe6409b9c4dd7fbb37757e89c09af73f1fd3)
2025-08-27 14:29:01 +07:00
AntsyLich
395f68f71f Fix 'Default' category showing in library with no user-added categories (mihonapp/mihon#2371)
(cherry picked from commit 7d717ee7fd9779b85fee29cadc946292cfdcee89)
2025-08-27 14:29:01 +07:00
AntsyLich
3ccf255d4e Potentially fix library IndexOutOfBound crash (mihonapp/mihon#2341)
(cherry picked from commit c4407eda0eed5a7faed47d4470d79e6b1512b5c2)
2025-08-27 14:29:01 +07:00
Cuong-Tran
3485297434 fix(library): De-duplicate entries mistakenly created in DB 2025-08-27 14:29:01 +07:00
Cuong-Tran
379d36e586 feat(library): Optimize library grouping 2025-08-27 14:29:01 +07:00
Cuong-Tran
ea06631670 feat(library): Rework categories filter 2025-08-27 14:29:01 +07:00
Cuong-Tran
f635fc209b fix(library): Fix categories filter & hidden categories 2025-08-27 14:29:01 +07:00
AntsyLich
1fd86ca74f Optimize and cleanup library code (mihonapp/mihon#2329)
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
(cherry picked from commit e62cd0e816402303fdf12513816894624f77e208)
2025-08-27 14:29:01 +07:00
Cuong-Tran
74a9182b20
chore(code): Minor improve (#1086)
* remove filtered_scanlators (old field not used anymore)

* Improve coding

* Revert "remove filtered_scanlators (old field not used anymore)"

This reverts commit 24042c17a432ff4c5012010155476aedbed3825f.
2025-08-14 23:12:01 +07:00
Secozzi
7d06e3b211 Don't hardcode app name in strings.xml (mihonapp/mihon#2394)
(cherry picked from commit 3d3c36078a3b8cb741adffd46931aeab9cb38578)
2025-08-12 23:03:22 +07:00
Secozzi
c5c4961ed7 Fix height of description not being calculated correctly if images are present (mihonapp/mihon#2382)
(cherry picked from commit c6a96b3970f0ba4643f438155653790973fa00f6)
2025-08-12 23:03:22 +07:00
MajorTanya
4679aaee23 Add label to privately installed extensions (mihonapp/mihon#2349)
Just adds the same word as the install option ("Private" in English)
next to the extension version and 18+ label.

(cherry picked from commit 549d74a2c9aef0eb41ea18378cd29d4ab9eee2b4)
2025-08-12 23:03:22 +07:00
AwkwardPeak7
e6c760cbcb Include Manga initialized status in backup (mihonapp/mihon#2285)
(cherry picked from commit 62eec15fe61be88e0ebc8be89a1e445dde55ba7e)
2025-08-12 23:03:22 +07:00
Secozzi
7acd998b12 Add option for rendering images in description (mihonapp/mihon#2076)
(cherry picked from commit 2ef8ae11c9da02c24bf4d12bf22b41c5d19bada4)
2025-08-12 23:03:22 +07:00
Cuong-Tran
ddfdd9588e
refactor(library): Combine category filter changes into a single flow (#1093) 2025-08-12 14:37:49 +07:00
Cuong-Tran
865db12b78
fix(UI): Fix repo dialog width on wide screen (#1078) 2025-07-23 16:28:33 +07:00
Cuong-Tran
feabf6efa6
fix(library): Fix Ungrouped UI (#1072) 2025-07-23 15:14:28 +07:00
Cuong-Tran
a9f6f7e8b8
feat(library): Keep tabs when exclude-only categories filtering (#1074)
* feat(library): Keep tabs when exclude-only categories filtering

* Fix updating activeFilter status

* Avoid redundant state updates if unchanged sets are emitted

* improve
2025-07-23 14:23:20 +07:00
Cuong-Tran
0d34d2f8bc
feat(library): Hide empty library tabs when searching/filtering (#1069)
* feat(library): Hide empty library tabs when searching/filtering

* Add search-global to Empty screen in Library

* Simplify conditional logic

* combine conditional flow

* Optimize code

* Simplified the code

* Simplified the code
2025-07-22 18:26:56 +07:00
Cuong-Tran
5dae177b08
feat(history): Add indicator for un-finished reading & has more un-read chapters (#992)
* feat(history): Add indicator for un-finished reading & has more un-read chapters

* Fix StateProvider

* Show reading progress in History screen

* Don't count bookmark excluded chapters in unread dot for History

* Don't count bookmark excluded chapters in Library unread count

* Exclude bookmark filtered chapters from continue-reading list

* Bundle `applyFilter` for bookmark & scanlator together

* Remove parentheses
2025-07-21 15:34:12 +07:00
Cuong-Tran
3ec6aeaba2
feat(local): Allow delete whole manga's downloaded folder & clear chapters list (#1016)
* feat(local): Allow delete local files

* Refresh chapters list after deleting

* Allow delete whole entry's downloaded folder & clear episodes/chapters list

Also hide `Open folder` for merged entries

* Don't delete local folder & refresh local's chapters list state after clear

* use forEachIndexed instead of forEach

* adding comment

* add empty line
2025-07-21 15:29:11 +07:00
Cuong-Tran
32d448d6ab
fix(bottom-action-menu): Properly close dropdown menu when refreshing selected mangas (#1044) 2025-07-18 12:22:54 +07:00
manav_chaudhary
8d65991759
feat(library): Added a button to refresh selected manga entries (#1038)
* feat: add refresh button to MangaBottomActionMenu

* feat: add refresh functionality for selected manga in LibraryTab

* feat: add refreshSelectedManga function to update selected mangas

* feat: add targeted update functionality for specific manga IDs

* Update CHANGELOG.md

* Refactoring & cleanup

* Move it to overflow menu

* Optimize update logic

* Fix index & improve code

* Remove parentheses

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-07-18 00:58:15 +07:00
manav_chaudhary
13a09d970a
feat(library-update): Update manga without chapters even if restricted by source (#1037) 2025-07-17 16:46:34 +07:00
Danny Wu
190f4a68ac Add option to hide missing chapter count (mihonapp/mihon#2108)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit d2c1ff6adf5543e5a593949704d41f2358252593)
2025-07-17 16:20:21 +07:00
Tsukuyoumii
cc8c6be5fc
Reindex Downloads through library overflow (#780)
* Reindex Downloads through library

* Update LibraryToolbar.kt

* Update LibraryTab.kt
2025-07-17 15:23:11 +07:00
Cuong-Tran
737bec70f0
feat(manga-tracking): Allow auto open tracking dialog when adding to library (komikku-app/anikku#59)
* feat(manga-tracking): Allow auto open tracking dialog when adding to library

* Prevent tracking dialog shows up overwrite change-category dialog

* Refactoring

(cherry picked from commit e82af25e198931d04fc2f75f663017fabced904c)
2025-07-17 15:09:07 +07:00
Cuong-Tran
d0823ef3f6
fix(anilist): Fix null recommendation node
(cherry picked from commit 305f8db0adcf821962a539867b5704fbf229461e)
2025-07-17 13:13:10 +07:00
Cuong-Tran
5ec780eddb
fix(merged-entry): Fix actions like URL copy or sharing for merged entries (komikku-app/anikku#55)
* fix(merged-entry): Fix actions like URL copy or sharing for merged entries

* Unify callback parameters

* Add titles for actions in merged manga dialog

* Iterates through the list once

(cherry picked from commit ed7bb96f409701c93bbca056728679af91f3453f)
2025-07-17 13:10:00 +07:00
Mend Renovate
ab44f49fff Update dependency org.junit.jupiter:junit-jupiter to v5.13.1 (mihonapp/mihon#1754)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 591e9c13560f28d71598eb32648387d099ebc881)
2025-06-16 00:38:37 +07:00
claymorwan
0b37b3258c Add Catppuccin theme (mihonapp/mihon#2117)
Mocha for dark and Latte for light, mauve accent

(cherry picked from commit 77eb55874278b7740d43b9144d9253a075cc593c)
2025-06-16 00:38:37 +07:00
Jobobby04
04782957c3 Remove +1 in Page Layout reader settings
(cherry picked from commit 3ad9765dcfa1f8574bd6d6bbb0e2955494b07a33)
2025-06-16 00:38:37 +07:00
Jobobby04
a4a19eb88b More guards against edited data
(cherry picked from commit 95dc82594fe7e503a5ba279c19c0b859c6789470)
2025-06-16 00:38:37 +07:00
NGB-Was-Taken
8af212f970 Change log file extension to .txt (jobobby04/tachiyomiSY#1449)
(cherry picked from commit 80e585fa9170b0dc0f6582ed85f0e9d58afce363)
2025-06-16 00:38:37 +07:00
NGB-Was-Taken
06ce765952 Remove the unused mark duplicate as read preference. (jobobby04/tachiyomiSY#1448)
* Remove the unused mark duplicate as read preference.

* Migrate the old preference to new preference

(cherry picked from commit 71470b9e02bc5e3e7607d7de57f90a882810bb49)
2025-06-16 00:38:37 +07:00
Cuong-Tran
b7c60d0750 Cleanup nHentai media-server 2025-06-16 00:38:37 +07:00
NoFace33
519c5f822e
Update DMCA UUID list using Mangadex Massacre Google Sheet (#988)
* Update DMCA UUID list using Mangadex Massacre Google Sheet

* Fix: add trailing newline to mangadex_dmca_uuids.txt

* Re-add trailing newline for formatting consistency
2025-06-16 00:06:54 +07:00
Callum Wong
3f2eb75b71 Add QR code scan button for sync API key (jobobby04/tachiyomiSY#1430)
* Add dependency com.journeyapps:zxing-android-embedded:4.3.0

* Add widget parameter to EditTextPreferenceWidget

* Add QR code scanner icon button to sync API key preference which launches a ScanContract

* Remove screenOrientation property from CaptureActivity manifest

* Allow scanning both normal and inverted codes

* store values and make code more concise

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>

* Import local context

---------

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
(cherry picked from commit 84c7da5a7d244ffc0cd7155d15e0a200f548ad35)
2025-06-15 22:28:03 +07:00
AntsyLich
bd93329372 Disable reader's 'Keep screen on' setting by default (mihonapp/mihon#2095)
(cherry picked from commit f0de8f973b331ebad6e1844aea7864f97f237941)
2025-06-15 22:28:03 +07:00
AwkwardPeak7
903281c2ef Fix pressing Enter while searching also triggering navigation back on physical keyboards (mihonapp/mihon#2077)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 86ebf5581598f28feab4090ac3bf627f54b511d7)
2025-06-15 22:28:03 +07:00
Cuong-Tran
87563a239c
fix(searching): fix filter-list param when doing search with some ext while doing: (#1006)
- Smart search
- Suggestions
2025-06-15 21:38:00 +07:00
Cuong-Tran
6c530e4fca
fix(recommendation): Fix null RecommendationSource & refactoring (#1000)
* Remove redundant condition & refactor class

* Batch networkToLocalManga

* Fix null source

* Simplify by creating RecommendationSource to match with upstream

* Add comment
2025-06-12 15:39:09 +07:00
Tim Schneeberger
9a31ffcc41
feat(recommendation): batch processing for recommendations & sort by relevancy (jobobby04/TachiyomiSY#1383)
* refactor: use NoResultsException

* refactor: cleanup RecommendationPagingSources

* refactor: turn wake/wifi lock functions into reusable extensions

* feat: implement batch recommendation (initial version)

* fix: serialization issues

* fix: wrong source id

* refactor: increase performance using virtual paging

* refactor: update string

* refactor: handle 404 of MD source correctly

* style: add newline

* refactor: create universal throttle manager

* refactor: throttle requests

* chore: remove unused strings

* feat: rank recommendations by match count

* feat: add badges indicating match count to batch recommendations

* fix: handle rec search with no results

* fix: validate flags in pre-search bottom sheet

* feat: implement 'hide library entries' for recommendation search using custom SmartSearchEngine for library items

* style: run spotless

* fix: cancel button

* fix: racing condition causing loss of state

* Avoid runBlocking in a property getter

* Remove unnecessary `synchronized`

* Fixes screen staying on in library tab. (jobobby04/TachiyomiSY#1451)

(cherry picked from commit 254980695bc39fe064e7aeb181ecdbf70c1eff95)

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
Co-authored-by: NGB-Was-Taken <76197326+NGB-Was-Taken@users.noreply.github.com>
2025-06-12 15:19:34 +07:00
Cuong-Tran
cd3dc79583
feat(MangaDex): use tracker links to associate mangas automatically with trackers (#991)
* feat(MangaDex): use tracker links to associate mangas automatically with trackers (jobobby04/TachiyomiSY#1387)

* 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

(cherry picked from commit 217503eab0e2fe551943e3b702cc6df4aaae8ebf)

* Handle null when searchId failed

* Wrap the await() call in a use block to ensure the OkHttp Response is properly closed after use

* Simplify Regex

* Injection via construction

* Wrap the blocking HTTP call in an IO dispatcher context

---------

Co-authored-by: Tim Schneeberger <tim.schneeberger@outlook.de>
2025-06-09 18:43:05 +07:00
Cuong-Tran
2661122d9a
chore(source-feed): Also hide entries already in library (#985) 2025-06-06 10:08:54 +07:00
Cuong-Tran
a843918e7f
feat(ui): Improve migration bottom sheet layout with scrollable content (#983)
* feat(ui): Improve migration bottom sheet layout with scrollable content

* Using with(binding) and remove redundant Box

* Simplify checkbox listener setup in MigrationBottomSheetDialog

* Fix reference ID should not create new ID
2025-06-05 12:03:22 +07:00
Cuong-Tran
4b4e4c6204
chore(sponsor): change to GitHub Sponsor (#981)
* chore(sponsor): change to GitHub Sponsor

* Fix button style

* Font style

* Small fix

* spotless
2025-06-04 16:15:31 +07:00
Cuong-Tran
3d2ad327bc
chore(manga-repository): Revert (in-memory) fast browsing (#965)
* Revert "fix(manga-repository): Fix selected entries while bulk-selection won't show as selected (#927)"

This reverts commit 303a266720.

* Revert "refactor(network-to-local): simplify networkToLocalManga (#910)"

This reverts commit d33efced68.

* Revert "chore(network-local-manga): Reintroduce (in-memory) fast browsing (#909)"

This reverts commit 3310784faf.

* Add updateInfo parameter to insertNetworkManga method
2025-05-31 11:41:20 +07:00
Cuong-Tran
ba63b74163
fix(migration): Fix issue preventing migration dialog to be shown up (#964) 2025-05-31 11:30:46 +07:00
Cuong-Tran
89f0e240ad
fix(updates): Fix wrong date order (#963) 2025-05-31 11:30:15 +07:00
Cuong-Tran
7df225c358
chore: Fix Discord badge & Weblate link (#960) 2025-05-29 09:48:59 +07:00
Cuong-Tran
c1157e7d5b
feat(ui): Update Buy Me a Coffee button theme (#959)
* feat(ui): update Buy Me a Coffee button theme and add preview

* Simplify vector & make button with border

* clipping the ripple effect
2025-05-29 01:33:52 +07:00
Cuong-Tran
757a86852c
Buy Me a Coffee (#953)
* Update expired Discord link

* Buy me a coffee

* Refactor

* move it down
2025-05-28 18:30:47 +07:00
Cuong-Tran
aaa1d855ff
feat(sanitizer): Sanitize manga titles for special characters before searching (#956) 2025-05-28 17:37:13 +07:00
Cuong-Tran
83b32b4c0a
feat(library): Filter MangaDex DMCA library entries with search keyword mangadex-dmca (#936)
* Filter MangaDex DMCA entries with search keyword `mangadex-dmca`

* Load from raw file

* using IO dispatcher

---------

Co-authored-by: az4521 <18432684+az4521@users.noreply.github.com>
2025-05-27 21:27:06 +07:00
Cuong-Tran
04227d718f
fix(release-notes): Fix Github Release Notes incorrectly displayed with Markdown (#934) 2025-05-27 15:34:30 +07:00
Cuong-Tran
068dc188ec
fix(notification): Prevent duplicate notifications during backup and restore processes (#933)
Avoid calling show() before returning builder for ForegroundInfo
2025-05-27 12:35:57 +07:00
Cuong-Tran
46c3f1ef2f
feat(notification): Add separate channel for sync notifications (#928)
* Add separate channel for sync notifications

(cherry picked from commit 2ef674cf5481272a80719b57d19e95b0bd0395f9)

* fix `showSyncError` notification channel

* Remove duplicate notification cancellation

---------

Co-authored-by: Jery <jery99961@gmail.com>
2025-05-27 09:08:47 +07:00
Cuong-Tran
5ac35847af
fix(debug-menu): Fix debug-menu pop twice (#925) 2025-05-26 16:35:35 +07:00
Cuong-Tran
49c012e548
chore(migrate-manga): Allow open manga by clicking cover while in selection mode (#924) 2025-05-26 15:36:20 +07:00
Cuong-Tran
cfa9f6bfef
feat(bulk-favorite): Show progress indicator when running bulk-favorite (#923)
* Show progress indicator when running `bulk-favorite`

* Deduplicate action title
2025-05-26 15:25:09 +07:00
Cuong-Tran
262c6315fd
feat(library-update-errors): add/clear error when updating manually from entry's screen (#922)
* add/clear error when updating manually from entry's screen

* Optimize redundant code

* Replace default error message with localized string
2025-05-26 14:44:10 +07:00
Cuong-Tran
f8ef5d4cf2
feat(duplicate-manga): Add target manga name in duplicate dialogs (#921) 2025-05-24 11:08:00 +07:00
Cuong-Tran
382d29e303
feat(manga-folder): Allow open manga folder with system's File Manager (#920)
* feat(manga-folder): Allow open manga folder with system's File Manager

* Add error message for failed folder opening
2025-05-24 01:53:53 +07:00
Cuong-Tran
fb9409c12f
fix(tracker-anilist): Remove unused 'id' field from ALEdge data class 2025-05-23 22:07:18 +07:00
Cuong-Tran
323ddd0aa8
chore(trust-extension): Bypass trust check for debug build types 2025-05-23 22:06:20 +07:00
Fermín Cirella
7f820b590c
feat(library): add category library filter (#895)
* feat(library): add category library filter

* feat(library): pre-calculate filter categories map

* feat(library): ungroup library items if category filter is enabled

* refactor `combine` function and improve flow handling

* fix: Exclude system's `Default` category from the list (as no other category would match with it)

* refactor: categories conversion

* feat: correctly restore categories filter preferences

* feat: improve DB ops performance

* chore: add KMK comment

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-05-20 15:32:41 +07:00
多能豆
70fcc3dff0
fix (delegate): Fix E-Hentai Jump/Seek match for detailed date (#919)
* Fix E-Hentai Jump/Seek match for detailed date

* end of line regex & note

---------

Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-05-20 15:24:08 +07:00
Cuong-Tran
2024cdf168
feat(update-errors): Allow manually delete update errors (#916)
* Allow manually delete error(s)

* remember swipe action & correct Modifier

* Simplify LibraryUpdateError data structure and separate SourceManager from compose UI

* Add badge count errors

* using SwipeToDismiss

* correct Modifier & StringResource

* remove confirmValueChange when Settle
2025-05-17 19:07:42 +07:00
Cuong-Tran
bc33a75b6b
fix(update-errors): Fix range selection & ordering latest error first (#914)
* Fix range selection

* Sort error list by latest error first

* Correct non-nullable lastUpdate & fix comment
2025-05-16 15:07:37 +07:00
Cuong-Tran
c52de8c472
feat(updates-screen): Swipe actions for chapter updates (#915)
* feat(updates-screen): Swipe actions for chapter updates

* Smaller cover size & add option to hide cover images (debug menu)

* Correctly apply passed-in modifier

* Memoize `getSwipeAction(...)`` invocations with Compose’s `remember` (keyed on the action and state) to avoid recreating those objects on every recomposition
2025-05-16 14:05:49 +07:00
Cuong-Tran
a3abccb34b
feat(updates-selection): Enable whole-group selection & Fix range selection in Updates screen (#913)
* fix(updates-screen): Fix range selection in Updates screen

* feat(updates-screen): select Updates whole-group

* improve performance

* simplify onUpdateSelected parameters using UpdateSelectionOptions
2025-05-15 16:31:19 +07:00
Cuong-Tran
2f55a0bc16
feat(updates-screen): Animated Updates group expand visibility (#912) 2025-05-15 14:06:32 +07:00
Cuong-Tran
d33efced68
refactor(network-to-local): simplify networkToLocalManga (#910) 2025-05-14 15:14:25 +07:00
Cuong-Tran
a18cc3e6a9
Fix mark existing duplicate read chapters as read option not working in some cases (mihonapp/mihon#1944)
(cherry picked from commit 9972fa1053d19191871e52d48a9fd56b22fbc708)
2025-05-14 15:01:05 +07:00
Cuong-Tran
85e3e383cb
chore(pager-viewer): cleanup setChaptersInternal 2025-05-14 10:48:38 +07:00