* Dialog for service tracker removal added, anilist query prepared
* added API delete requests for Mal and Kitsu
* implement and fix tracker delete for anilist, shikimori, mangaupdates
* implement and test mal delete request
* Update to dialog text to reflect current tracker
* finish kitsu api request and block bangumi tracker removal
* Change delete flag into interface, localise strings, clean up logs
* Add shikimori delete compatibility for already existing entries
* update track delete dialog prompt to include checkbox, update strings
* Update i18n/src/main/res/values/strings.xml
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
* Update i18n/src/main/res/values/strings.xml
---------
Co-authored-by: unknown <zaghdane@fireflow.de>
Co-authored-by: arkon <arkon@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
(cherry picked from commit b36b3bfcabd4a33826b455e1cdfc06fde110a452)
Similar to J2K. This only applies on Android 12+.
(cherry picked from commit ee95c1439f8c47d912c88bd9ebb442e64a89f8ff)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
* Rename removeFromQueueByPredicate to removeFromQueueIf
Follow-up to PR comment in #9511
* Make Download hashCode stable
Mutating pages would previously change the Download hashCode, which
breaks HashMap lookups.
* Convert Donwloader subscription to coroutine
Replace downloadsRelay with activeDownloadsFlow. Instead of managing
a PublishRelay independent from the queue, derive a Flow of active
downloads directly from the queue StateFlow. (This will allow
updating the queue without pausing the downloader, to be done in a
follow-up PR.)
When a download completes successfully, the downloads is removed from
queueState. This updates activeDownloadsFlow and causes the
downloaderJob start the download job for the next active download.
When a download fails, the download is left in the queue, so
queueState is not modified. To make activeDownloadsFlow update
without a change to queueState, use transformLatest and use the
Download statusFlows to suspend until a download reaches the ERROR
state.
To avoid stopping and starting downloads every time
activeDownloadsFlow emits a new value, maintain a map of current
download Jobs and only start/stop jobs in the difference between
downloadJobs and activeDownloads. To make sure all child download
jobs are cancelled when the top-level downloader job is cancelled,
use supervisorScope.
* Remove obsolete main thread references in Downloader
Thread safety of the queue state used to be guaranteed by running all
queue mutation on the main thread, but this has not been true for
some time. Since the queue state is now backed by a StateFlow,
queueState can be safely updated by any thread.
(cherry picked from commit 3ae1e37c40fcfa43798377d2d9b8af58ec4498db)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
* Implemented local cover encryption and made coil capable of reading encrypted cover archives
* add check that the file is not an image before determining that it is a zip file
Fetch each source image URL immediately before downloading each image
instead of fetching all URLs and then downloading all images.
Source image URLs may change, so the downloader may fail if there is
too long a delay between fetching the image URL and downloading the
image.
(cherry picked from commit bbe0ab1dd0b51bcb91ff0a7f78555b078d73201e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
* change the directory's name for a download when the chapter's name is only composed of numbers or is blank
* maj in case the chapter name is blank or empty
* clean code
(cherry picked from commit 41cc1fe7237a52c830e87c8261254b7f59922a6b)
* Initial Implementation of encrypted CBZ archives
* changed a preference key to correct Syntax, changed a function name and changed ComicInfo padding length
* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* add necessary imports
* fix indentation after merge conflict
* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* fix indentation and add imports
* collect preferences as states
* test if password is correct in ZipPageLoader
* added withIOContext to function call
* added encryption type preference
* implemented database encryption
* added proguard rules for sqlcipher and generate padding length with SecureRandom
---------
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
This partially reverts commit 2769525b2c12547b8dc29b1209ea3bc5d22f1e3f.
Keeps the change to silently ignore spliting errors since it falls back to
the original images in those cases.
(cherry picked from commit ac0596a53d74561ad5174db1938c16049a65dd18)
This reverts commit 978a814815772d21bd95f138786914f6525e112d.
Going to just change the build system to output a new name format so that all the time doesnt go to waste
TachiyomiSY's APK didn't have this suffix.
The code now causes the corresponding architecture impossible to find, which leads to downloading the APK for arm64 when updating from x86_64.