Some navigation janks will be dealt with when the migration is complete
(cherry picked from commit 94d1b68598692cc0ef981e2dfbf12303fa962f63)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
# app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt
* Use Compose on Global/Migrate Search screen
- Refactor to use Voyager and Compose
- Use sealed class for state
- Somethings are broken/missing due to screens using different navigation libraries
* Review changes
(cherry picked from commit f99b62a069e8e987318a0144090560795d59e3ff)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt
Requires extensions to be updated to lib 1.4 to have proper URLs for some of them, which will
happen soon in the future.
(cherry picked from commit 262f8449b4369fde42cbd15d2a768e54461e84af)
* 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>
(cherry picked from commit 4e628fe6de7a691fbab7960c5f9b750e563eb8a1)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
I guess it's simpler to just have 1 entry in the list (other than the last used duplicate).
This helps ensure that the list is as short as it can be.
(cherry picked from commit a8eebd824a50d4676cc31aec51ede94009b82851)
# Conflicts:
# app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
# app/src/main/java/eu/kanade/domain/source/model/Source.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt
We can probably clean up the same logic in the manga controller at some point too, but that stuff's messy.
Also fixes the spacing issue that the new icon introduced.
(cherry picked from commit 33e90d64497f920be825b803e1342a2e6c937111)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
- 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)
(cherry picked from commit fc184f1cfa929328c41b0ec374503afe204d6c15)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
Simplifying it to just always be centered, which is what most Google apps seem to be doing anyway.
(cherry picked from commit ccc4144f3cc2264c3ae75d492983e9577f352af1)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
* Uses Voyager for navigation.
* Replaces every screen inside settings except category editor screen since it's
called from several places.
(cherry picked from commit 890f1a3c7b0f2ceefa86a77cb40c11567e2b5a46)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt
* HistoryScreen: Remove paging
Per my testing performance-wise there's virtually no
difference in loading time.
* cleanups
* add key and contentType
(cherry picked from commit 42b0e3e4389b78556ccf34b93edc7d454de5881e)
Also add POST_NOTIFICATIONS permissions to make Android Studio stop complaining about it.
(cherry picked from commit b37b3767f3c55a74bede78d11300249ab419a4c7)
* 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
* Flatten available extensions with it's source
We should also do something similar for installed extensions
Supersedes #7200
* Dedupe sources
(cherry picked from commit c51e83c048b9575b322690fdadddba0001690d4d)
TODO:
- Global search should launch a controller with the search textfield focused. This is pending a Compose rewrite of that screen.
- Better migrate sort UI
- Extensions search
(cherry picked from commit 92e83f702c775d5ab5a0b4248995308155150811)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/MigrateSourceScreen.kt
# app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesPresenter.kt
* 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
(cherry picked from commit 880407442c598d1b63db8be43f4848550dc17ff1)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt
# app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/setting/SortDirectionSetting.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/setting/SortModeSetting.kt
Also fix sort direction can't be changed for default category
(cherry picked from commit 763288ab137505813f951bb02ca3ba9c1590dbc4)
# Conflicts:
# app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/setting/SortDirectionSetting.kt
- Use the same flag as other categories
- Per-category uses the flag the user used before starting to use per-category
(cherry picked from commit 4228bbb88efc1a2ff62c52d3bf5724150800e39e)
* 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>
(cherry picked from commit 11f640cfee427b8912cdc43fc3efc61e0f774aa7)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* Migrate Updates screen to compose
* Review Changes + Cleanup
Remove more unused stuff and show confirmation dialog when mass deleting chapters
* Review Changes 2 + Rebase
(cherry picked from commit d8fb6b893fd9ae6aab3b4762837ebce496a214b3)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt
# app/src/main/sqldelight/migrations/18.sqm
- Replace ExtensionManager relay and observable with Flow
- Inverse SourceManager dependency
- SourceManager observers ExtensionManager flow
- Separate SourceData from SourceRepository as it created a circular dependency
(cherry picked from commit 35ec5936587799f33a264f57729cb4b75c5a0f72)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
* Little cleanup for stub source
Fixes instances where name shows up blank for stub sources
* Review Changes
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit 902bb35ba7f56f06660985dda0f7f8abf41ee669)
* Reset lastPageRead when chapter is marked unread
* Remove a bit of repetition in SetReadStatus
(cherry picked from commit 5159eabc5dfd77dd7e4a480c1982bd1d2e5fbb92)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt