It previously only attempted this after deleting a list of chapters, so it wasn't applicable
when deleting from Library or after unfavoriting an entry.
Closes#8594
* generate ComicInfo files at the chapter root and inside CBZ archives on chapter download.
* Update app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Improvements suggested by @ghostbear
* now creates ComicInfo files in normal chapter folders as well
use manga directly instead of converting it to SManga
truncate old files before overwriting them
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
* remove empty line after resolving merge conflict
* fixes Serializer for class 'ComicInfo' is not found error
* some changes to comments and variable names
* Revert leftover changes to archiveChapter() function
* minor cleanup
* Changed Chapter to SChapter
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
* Added kavita tracker
* Changed api endpoint since tachiyomi has it's own. Moved some processing to backend
* Bugfix. Parsing to int instead of float
* Ignore DOH, update migration and cleanup
* Fix Unexpected JSON token
modified: app/src/main/java/eu/kanade/tachiyomi/data/track/TrackManager.kt
modified: app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/KavitaApi.kt
modified: app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/KavitaModels.kt
* Apply code format suggestions from code review
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Apply simplified code suggestions from code review
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Removed unused dtos
* Use setter instead of function to get apiurl
* Added Interceptor
* Handle not configured/not accesible sources
* Unused import
* Added kavita to new tracking settings screen
* Delete SettingsTrackingController.kt to solve conflict
* Review comments
* Removed break lines from log messages
* Fixed jwt typo
* Merged enhanced services compatibility warning message to be more generic.
* Updated Komga String res to use new formatted one
* Added Kavita String res to use formatted one
* Apply suggestions from code review - hardcoded strings to track name
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
- Remove redundant chapter sorting logic when fetching next chapter(s)
- Remove redundant download queue checks (it'll handle already queued or downloaded items)
- Trigger download ahead when read >= 25% of chapter rather than 20%
- Rely on download cache when checking if next chapter is downloaded to avoid jank (fixes#8328)
* Clean up strings and icons
* fix incorrect usages of label_more
* restore strings and reduce usage of android.R
* removing icon desc of FABs anyway as app's not for visual impaired users
* Fix "Download split" not working while using SD card
* Update app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Use `Channel` in Download cache
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Use Unlimited capacity
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
Don't block on cache renewals, but notify library on updates so that the badges show up when ready.
We skip the cache when checking if a chapter is downloaded for the reader assuming that it's a
relatively low cost to check for a single chapter.
(Probably) fixes#8254 / fixes#7847
* Implementing overwrite instead of saving duplicated images
* Using filename instead of hardcoding image type
* Refactoring method to accept lambda for default value
* Removing extra parenthesis
* Add support to update strategy.
* Add JavaDoc and bump the LIB_VERSION_MAX constant.
* Fix a word typo.
* Store update strategy enum as integer in the DB.
* Use 1.x preference abstraction
- Uses SharedPreferences compared to 1.x impl which uses DataStore but it breaks all settings screens currently
- Move PreferencesHelper to new PreferenceStore
- PreferencesHelper should be split into smaller preference stores and be in core or domain
- Remove flow preferences as new PreferenceStore handles changes for us
Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
* Fix PreferenceMutableState not updating
* Fix changes not emitting on first subscription
Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
- Defaults to every 12 hours
- Minimum number of backups is now 2, just to offer some level of redundancy in case something happens
- If it's missing storage permissions, it'll fail but that's the user's loss if they somehow haven't granted that permission yet
* Enable sub-languages on app first run.
* Fix wrong language code string parsing.
* Fix some build issues due to rebase.
* Use PreferenceHelper and remove an extra preference.
* Remove a constant.
* Tweak flag classes for Library
- Add interface for Flag and Mask
- Merge Sort Type and Direction into one class
- Use custom serializers for preferences
- Mainly to not break the old
* Review changes
* New Theme Tidal Wave
Added a new strong blue theme appearance to Tachiyomi titled Tidal Wave.
* Better Tertiary Color: Seafoam Green
Updated the tertiary color to be lighter and match the blue more. Also changed the active button color to contrast better.
* Change return value of `SyncChaptersWithSource.await()`
`updatedToAdd.subtract(reAdded).toList()` never worked as at this point `updatedToAdd` contained ids from db where `reAdded` had default one. Was the same case before the rewrite.
Removed `toDelete` from return value as it was not being used anywhere
* Add doc string
* Use HashSet
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
The abstraction was useful for handling 2 systems, but it's no longer needed. Cleaning it up will make migrating to domain models easier down the line.
* Save read duration to backup
* Add default value
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Add new "Lavender" theme
* Add light theme values for Lavender theme
* Fix order of enums
* Fix accented UI elements in set categories sheet being different colors
Co-authored-by: CrepeTF <trungnguyen02@outlookcom>
(cherry picked from commit ad106bd884)
Instead of just checking whether the current app version *matches* with
latest app version in GitHub Releases, compare the semver from the tag
names to check whether the latter is greater and the app needs an update
Reference: semver spec #11https://semver.org/#spec-item-11
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit e7ed130f2a)
Currently, manually created backups contain list of categories even if
Categories option is not selected during Backup Prompt. This leads to
empty categories being created when restoring such backup files
This commit adds a check before saving categories list info to the
backup file. The check is the same check which is used while backing up
category info of manga in library
Tested and worked successfully on app installed on Android 12
(cherry picked from commit 11c01235ac)
Generally seems fine. People with weak devices may experience some issues, but they can toggle it off/extract the archives separately if needed.
(cherry picked from commit 883945e3e8)
- Uses the new `asObservable` function to change the database calls to use SQLDelight, which should make the impact minimal when it comes to bugs.
- Use interactors where they already exist
- The todos are for the Compose rewrite
- Removed unused StorIO methods/queries
- Tested loading library, move manga to new category, unfavorite multiple manga, move multiple manga from one category to another, change filter, sort and display settings (with and without per category settings), (un)mark chapters, start/delete downloads
Thank Syer for asObservable
Co-authored-by: jobobby04 <17078382+jobobby04@users.noreply.github.com>
Co-authored-by: jobobby04 <17078382+jobobby04@users.noreply.github.com>
* Add new "Lavender" theme
* Add light theme values for Lavender theme
* Fix order of enums
* Fix accented UI elements in set categories sheet being different colors
Co-authored-by: CrepeTF <trungnguyen02@outlookcom>
* Use sqldelight in migration
* Some more changes
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Review Changes
* Review changes 2
* Review Changes 3
* Review Changes 4
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Add cancel button in app update download notif
Since stuck downloads are a common issue and only solution until now was
to force close the app or download and update the app manually by
downloading from GitHub (which clears the notif away)
Based on commit
4dea924337
Co-authored-by: Jays2Kings <8617760+Jays2Kings@users.noreply.github.com>
* Linting by Android Studio
* commit PR Review Suggestion
Update app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Use `launchIO`
copied this over from how j2k was doing it. Launching in IO Thread like
how it was before this PR is sufficient
* Clear previous actions before adding `Cancel`
Otherwise, it led to two identical Cancel buttons
Co-authored-by: Jays2Kings <8617760+Jays2Kings@users.noreply.github.com>
Co-authored-by: arkon <arkon@users.noreply.github.com>
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Make `syncChaptersWithSource` use sqldelight
Will break chapter list live update on current ui
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Review Changes
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
- Protobuf backups have been around for 1.5 years now
- The ability to restore online-dependant data from JSON backups gets harder as time goes on and sources drift
- If users really need a way to restore them, they can use an older version of the app, or a separate tool for translating between the formats could be created
* MangaUpdates tweaks
* Review changes
Co-authored-by: arkon <4098258+arkon@users.noreply.github.com>
* Use built in functions instead of Jsoup
Co-authored-by: arkon <4098258+arkon@users.noreply.github.com>
* Fixes:
- spliiting fails when the page was already been split and processed before
- Moved CBZ logic a little earlier to avoid marking a download as complete before the CBZ compression was completed
* Added a single space for readablity
* Added 2 spaces for readability
* Moved the splitting logic to happen inside getOrDownloadImage()
* Minor cleanup
* - Improved error handling when splitting fails due to OOM exception caused by BitmapFactory.decodeFile. - Changed logic from throwing error to only notify to allow the download to complete even if splitting failed.
* reverted auto formatting changes
* removed an extra loop
* Merged to Upstream, cleaned up
* Removed unused localized string
* Minor cleanup
- Add pending intent immutable flags to satisfy lint warnings
- Change AddDuplicateMangaDialog arg to a function instead to avoid leaking controller-specific logic into it
- Require WebView 99+
Instead of just checking whether the current app version *matches* with
latest app version in GitHub Releases, compare the semver from the tag
names to check whether the latter is greater and the app needs an update
Reference: semver spec #11https://semver.org/#spec-item-11
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>