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
FlaminSarge
6e3670ef75
Add advanced option to always update manga title from source ( mihonapp/mihon#1182 )
...
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 8b45ef0e5d5d368e0925df9816ae423defaed4d9)
2025-05-13 23:55:50 +07:00
Cuong-Tran
3310784faf
chore(network-local-manga): Reintroduce (in-memory) fast browsing ( #909 )
...
* measure time
* Revert "Revert "Fast browsing (#612 )""
This reverts commit d23130b317 .
* Fix networkToLocal for bulk-selection selectAll/reverseSelection
* fix comments
2025-05-13 23:18:01 +07:00
Cuong-Tran
7dd57c54bc
chore(storage): check valid data folder location & handle permission for device without FilePicker ( #906 )
...
* fix(storage): setting app's data folder on Android TV
Also check if set location is actually accessible then update UI compose accordingly (for all devices) in some cases (e.g. location set but actual folder was deleted or permission revoked)
(cherry picked from commit ef56b7f11ef0d243ef14816e85afa360f1137fe8)
* chore(storage): improve permission handling for older Android version & Fire TV
(cherry picked from commit 5ee009a6db73d33687e55ee8f4ad6412a9e320d4)
2025-05-11 23:24:16 +07:00
Cuong-Tran
0db7b47bcf
fix(migrate-dialog): Fix migrate-dialog reappear before migration actual complete ( #905 )
...
refactor MigrateDialog to use rememberScreenModel for state management
2025-05-11 20:32:02 +07:00
Cuong-Tran
615c9fa259
feat(incognito): add incognito mode for local sources ( #903 )
2025-05-11 16:07:36 +07:00
Cuong-Tran
8a2b063cd9
feat(incognito): add toggle for incognito mode in BrowseSource & SourceFeed ( #902 )
...
* feat(incognito): add `toggle for incognito` mode in BrowseSource & SourceFeed
* fix null check
2025-05-11 15:52:01 +07:00
Jery
a862bda9d5
feat(incognito): Add incognito mode for EH based sources ( #901 )
...
* Add incognito mode for eh based sources
(cherry picked from commit bdf848ebb721394ff1b7b7006e538f6f60056b76)
* simplify GetIncognitoState parameters and logic
---------
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-05-11 14:22:30 +07:00
Cuong-Tran
ee1418c7fc
fix(source-feed): update last used source was not working, show incognito status bar ( #900 )
2025-05-11 03:08:33 +07:00
Jery
3d9dd9d7b1
feat(incognito): add animated incognito mode indicator and icon ( #899 )
...
* Add indicator for source incognito mode
Adds an indicator to the manga info header to show if a source is running in incognito mode.
Also moves the source incognito check logic to `SourceExtensions`.
(cherry picked from commit 5e547efda51cdeaa7bc71198b932c8ac9aecc312)
* Replaced incognito icon with animated glasses_with_hat icon.
This commit introduces an animated vector drawable for the incognito mode icon and updates the related icons in the app.
- Adds `anim_incognito.xml`, a new animated vector drawable for incognito mode.
- Adds `ic_glasses_with_hat_24dp.xml`, a new icon for incognito mode.
- Updates the incognito mode icon in the following places:
- MoreScreen
- ExtensionDetailsScreen
- App notification
- Manga info header
- Updates `SwitchPreferenceWidget` and `TextPreferenceWidget` to accept any type of icons.
(cherry picked from commit 2a28673e078ff15fe0a7c2a030ffc6ce6cbe6b31)
* move incognito icon
* issue: Use stringResource for contentDescription to support localization
* Wrap the ImageVector.vectorResource call in remember to avoid inflating the drawable on every recomposition.
---------
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
2025-05-11 02:38:17 +07:00
Cuong-Tran
4fcbd88618
refactor(bulk-selection): optimize selectAll/reverseSelection logic ( #898 )
2025-05-10 01:12:13 +07:00
Cuong-Tran
78f03f8207
fix(toolbar): do not bulk-selection on BrowseRecommends ( #897 )
2025-05-10 00:44:33 +07:00