* 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
* 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)
* 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>
* 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
* 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
* 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)
* 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>