* fix: skip duplicate chapters on download ahead if option is enabled
* fix: Use a function to filter duplicates
(cherry picked from commit 4816b4b53afa6db5dfaa2b023a4896e31425f97c)
* 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>
(cherry picked from commit 0086743a5311c22fb8c07f596ab5de384862a68a)
# Conflicts:
# app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
# app/src/main/java/eu/kanade/tachiyomi/App.kt
# app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
# core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
* Lessen the use of GlobalScope `launchIO`
* Wrap some calls with `NonCancellable` context
(cherry picked from commit da95ecb6869314f35eb73c6d9245b4e0d127f22d)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* 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>
(cherry picked from commit 120943a8b37eaf847ca1073676a8293288c28e12)
# Conflicts:
# app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/AbstractBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt
# app/src/main/sqldelight/data/mangas.sq
Pulling out some of the smaller changes that aren't related to the manga controller changes in #7244
(cherry picked from commit 7fdbf40cd23132915bd90cf623e4a69fb560dd26)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationFlags.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSettingsSheet.kt
* Fixes: incorrect sorting when chapter name contains hyphens '-'
* Added a test case for hyphen in ChapterRecognitionTest.kt
* Removed chapter range test case since it will be replaced by chapterContainingHyphensCase
(cherry picked from commit 3e07100dc2725cb2d42050571232dd5d485b4de5)
This doesn't make sense to have if the intention is to have reasonably sized global updates. Opting to remove it to remove complexity instead.
(cherry picked from commit 65062b4bcbe65ffc75a6c5e656d39c91be327d63)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt
each TrackService can convert it to Int if decimal chapters are not supported
(cherry picked from commit 2cd87332125e8b4c703d2b8f47cfc0d540118a97)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt
Based on 00f916a4f0
Co-authored-by: CarlosEsco <CarlosEsco@users.noreply.github.com>
(cherry picked from commit 07e5525c7433914f8e4b7dad03eb3081e622df48)
* Imported implementation for updating library by next expected update from Neko. This sort uses the last 4 updates for a manga to compute an average time between updates and then extrapolates when the next update should occur.
Currently seems to work perfectly. However, I may have silently messed something up along the way.
All code and algorithms are credited to kyjibo on GitHub. The original commit adding this functionality is here: 681003926a
* Imported implementation for updating library by next expected update from Neko. This sort uses the last 4 updates for a manga to compute an average time between updates and then extrapolates when the next update should occur.
Currently seems to work perfectly. However, I may have silently messed something up along the way.
All code and algorithms are credited to kyjibo on GitHub. The original commit adding this functionality is here: 681003926a
* Remove commented-out line from LibraryUpdateRanker
I missed removing this when first committing. The removed line is a holdover from Neko, which requires 7+, but I removed the function that requires this.
(cherry picked from commit 70ed49e4782579d6ce2e91ace75ef44f8460a64a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt
* fix: prevent crash if TrackService.getScoreList() is empty
* disabled track score button if service doesn't support scoring
* first implementation of the Komga tracking
this doesn't work for read lists
* auto track when adding to library
* handle refresh
* 2-way sync of chapters for unattended tracking services
* Update app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSheet.kt
Co-authored-by: Andreas <andreas.everos@gmail.com>
* group strings together
* support for read lists
* sync read chapters on bind
* only mark local chapters as read during 2-way sync (incoming)
* local progress from read chapters will be sent to remote tracker on bind/refresh
this enables syncing after reading offline
* remove unused variable
* refactor the 2-way sync in a util function
* handle auto add to track for unattended services from the browse source screen when long clicking
this will also sync chapters, as it is possible to have read or marked as read chapters from there
* 2-way sync when library update for TRACKING
* refactor
* better handling of what has been read server side
* refactor: extract function
* fix: localLastRead could be -1 when all chapters are read
* refactor to rethrow exception so it can be shown in toast
* extract strings
* replace komga logo
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit d6b3b0baf70b3a6caccffd367b707f26c1e6010d)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/data/track/TrackManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
* Add manga-wised rotation mode settings
Based on #3522
Co-authored-by: bboyz269 <4453811+bboyz269@users.noreply.github.com>
* Fix small mistakes
* Complete TODOs
* Rename functions
rotation -> orientation
* Fix orientation icon not changing
Bug from video
* Fix bug with force portrait not being force if a default value
Bug from video
* Backup viewer_flag as a seperate field in so legacy/forks doesn't crash
* Make viewer_flags nullable so old backups viewer gets restored
* Add migration for old rotation and viewer to new defaults ones
* Rename variable in enums
* Fix migration after OrientationType was changed
* Remove untrue comment
Co-authored-by: bboyz269 <4453811+bboyz269@users.noreply.github.com>
(cherry picked from commit 0fef546a0d4b2a78089b0880564e80708afbe1da)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt