40 Commits

Author SHA1 Message Date
Andreas
d8042f7182 Use Flow in ExtensionManager and SourceManager (#7547)
- 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
2022-07-16 20:09:33 -04:00
Jobobby04
dd68ef4ba8 Remove drag and drop 2022-07-16 19:49:46 -04:00
Jobobby04
36461b52c0 Fix inconsistencies with Manga.create() 2022-07-15 11:50:06 -04:00
Jobobby04
3b6ce209be Fix chapter flags 2022-07-15 11:38:56 -04:00
Jobobby04
141b0477e7 Use domain layer for saved searches 2022-07-04 18:10:43 -04:00
Andreas
22da633ee3 Cleanup data layer (#7450)
(cherry picked from commit 069bd90c0f76d21bc6d99a51644926876415c113)

# Conflicts:
#	app/src/main/sqldelight/data/mangas.sq
2022-07-03 16:41:43 -04:00
Andreas
ea38ffc53e Use SQLDelight for all Manga related queries (#7447)
(cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/DomainModule.kt
#	app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 15:58:26 -04:00
Jobobby04
d88c769d3b Use SQLDelight for more SY specific things 2022-07-03 13:37:27 -04:00
Jobobby04
664f9b1484 Use SQLDelight for most SY specific things 2022-07-02 23:52:03 -04:00
Andreas
9093663f2f Use SQLDelight for all Chapter related queries (#7440)
(cherry picked from commit 29633b64aa1b3d87392362f31f4fc250d930722b)

# Conflicts:
#	app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt
#	app/src/main/java/eu/kanade/domain/chapter/repository/ChapterRepository.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt
#	app/src/main/sqldelight/data/chapters.sq
2022-07-02 20:46:01 -04:00
Andreas
2c87a8fd02 Use SQLDelight on Library screen (#7432)
- 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>
(cherry picked from commit 05085fe57fe4c3ada497f93b8cd282a5009cdbbb)

# Conflicts:
#	app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/CategoryQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.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/manga/MangaPresenter.kt
2022-07-02 19:10:26 -04:00
Andreas
42ecd912e8 Use SQLDelight on Updates screen (#7423)
(cherry picked from commit 1f10b79ee800fba42aa588cb094d3d280c264245)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt
2022-07-02 13:38:36 -04:00
AntsyLich
afe15d8256 Fix crash when adding if there are more then 1 dupe (#7405)
(cherry picked from commit 0969226fd371851849bf4bfb3eeb44ede9a6b8ad)
2022-06-28 10:04:02 -04:00
AntsyLich
6f407f6e0a Use sqldelight for direct db calls in MangaPresenter (#7366)
(cherry picked from commit 04f0ca78469573707e14742226fd8f14445853d4)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-06-26 16:03:51 -04:00
Ivan Iskandar
2b7aca710e MangaController overhaul (#7244)
(cherry picked from commit 33a778873af0eb52528a29f741fa59b530679c64)

# Conflicts:
#	app/build.gradle.kts
#	app/src/main/java/eu/kanade/tachiyomi/data/database/models/LibraryManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSettingsSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/MangaSummaryView.kt
#	app/src/main/res/layout-sw720dp/manga_info_header.xml
#	app/src/main/res/layout/manga_controller.xml
#	app/src/main/res/layout/manga_info_header.xml
#	app/src/main/res/layout/manga_summary.xml
#	app/src/main/res/menu/manga.xml
2022-06-25 17:11:25 -04:00
AntsyLich
14a57b7d4d Use sqldelight in migration (#7331)
* 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>
(cherry picked from commit e3b1053c03da17c8c1b66f1914251707134e84a9)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-06-25 11:32:09 -04:00
arkon
4ca4484362 Migrate duplicate manga check to SQLDelight
Extracted from #7244

Co-authored-by: ivaniskandar <ivaniskandar@users.noreply.github.com>
(cherry picked from commit 9f66c85281e02eb6a73034d79a3441c98803ffd6)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-06-19 21:24:07 -04:00
Jobobby04
cd4b6a0c27 Build fixes and minor improvements 2022-06-18 19:27:26 -04:00
Ivan Iskandar
a5fe4e1a44 Fix cover fetching in compose views (#7315)
Make sure it passed thru the custom fetcher

(cherry picked from commit 1b804e61cb2b38d7194b058b4152b14607b5e443)

# Conflicts:
#	app/src/main/java/eu/kanade/data/history/HistoryMapper.kt
#	app/src/main/java/eu/kanade/domain/history/model/HistoryWithRelations.kt
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
2022-06-18 19:26:33 -04:00
Andreas
cbb201d63d Use SQLDelight on Category screen (#7310)
* Use SQLDelight on Category screen

* Include category name in DuplicateNameException

(cherry picked from commit 017f6b22f02ef06cd5a3d521715c32c5e3b2b0e6)

# Conflicts:
#	app/src/main/sqldelight/data/categories.sq
2022-06-16 12:05:40 -04:00
AntsyLich
8a06bc42d8 Maintain source info in the database. (#6389)
* Maintain Source Info in database

* Review changes and cleanups

* Review changes 2

* Review Changes 3

(cherry picked from commit 9d5b7de1d89a353d0bf73ce6befd9f5667d94d17)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/DomainModule.kt
#	app/src/main/java/eu/kanade/presentation/browse/MigrateSourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
2022-06-16 12:02:38 -04:00
Andreas
70c2f97976 Use SQLDelight in Backup/Restore (#7295)
* Use SQLDelight in Backup/Restore

* Use CoroutineWorker

(cherry picked from commit fd5da2de3ab294988e8408077977f776cca5299a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/AbstractBackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupRestore.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupCategory.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/HistoryQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/SManga.kt
#	app/src/main/sqldelight/data/categories.sq
#	app/src/main/sqldelight/data/chapters.sq
2022-06-14 11:13:53 -04:00
AntsyLich
f7ccbd24f8 Fix chapter list live update (#7296)
(cherry picked from commit b96686e6ad0b46a586958179e8cbb1d6a9182323)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-06-12 12:44:34 -04:00
AntsyLich
e3f577a6e2 Update manga metadata on library update with sqldelight (#7293)
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>

Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
(cherry picked from commit 5bb78eb77f2f68c40079548d5fe3b75a11f2bf71)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaLastUpdatedPutResolver.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
2022-06-12 12:20:07 -04:00
Jobobby04
cf79a406bf Improve metadata queries 2022-06-11 13:19:41 -04:00
AntsyLich
d1d9c53af3 Make syncChaptersWithSource use sqldelight (#7263)
* 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
2022-06-11 12:51:49 -04:00
arkon
c4def072f6 Convert clear database queries to SQLDelight
(cherry picked from commit e15a867106bea490ed92d78b046535d3985ba1d0)

# Conflicts:
#	app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt
#	app/src/main/java/eu/kanade/domain/DomainModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/database/ClearDatabasePresenter.kt
2022-06-11 12:20:29 -04:00
Jobobby04
8f868c0813 Fix auto-downloading for merged manga 2022-06-04 11:59:29 -04:00
Andreas
cd1972f4cd feat: add read last read chapter shortcut (#7230)
Supersedes #6861

Co-authored-by: Pierre-Monier <65488471+Pierre-Monier@users.noreply.github.com>

Co-authored-by: Pierre-Monier <65488471+Pierre-Monier@users.noreply.github.com>
(cherry picked from commit 4560033e66bac13859af6aff5816925a4181a376)
2022-06-03 19:10:32 -04:00
arkon
2ae1b6ac3e Replace history query with actual upsert
(cherry picked from commit cd0294b1b697b5dedb79374a1007ad81d90781c9)
2022-05-29 18:44:41 -04:00
AntsyLich
f0fb91b84b Reader: Save reading progress with SQLDelight (#7185)
* Use SQLDelight in reader to update history

* Move chapter progress to sqldelight

* Review Changes

Co-Authored-By: inorichi <len@kanade.eu>

* Review Changes 2

Co-authored-by: FourTOne5 <59261191+FourTOne5@users.noreply.github.com>
Co-authored-by: inorichi <len@kanade.eu>
(cherry picked from commit 809da49301cceacd433f38354fb04fc616efcc5f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-05-29 18:38:40 -04:00
FourTOne5
c24f134b28 Add option to reset viewer flags (#7062)
* Add option to reset viewer flags

* Review Changes

* Run `resetViewerFlags()` content with `launchIO`

(cherry picked from commit 08fb2fe467a786e1273bf22531361d33ae898a38)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
2022-05-14 10:48:57 -04:00
Andreas
204ba71a65 Fix migrations (#7051)
(cherry picked from commit 609f552c8d2b3a33473322a268ba61edf4eba94d)

# Conflicts:
#	app/src/main/sqldelight/migrations/12.sqm
2022-05-01 16:57:33 -04:00
Andreas
6eaeec3a48 Migrate Migrate Manga screen to Compose (#7045)
* Migrate Migrate Manga screen to Compose

* Changes from review comments

(cherry picked from commit bf6d59cd21e6c2436ceefa3de5343e56640f9073)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
2022-05-01 16:00:18 -04:00
Andreas
ca3574690b Use Compose in Migrate tab (#7008)
* Use Compose in Migrate tab

* Add missing header

* Remove unused files

* Fix build after rebase

* Changes from review comments

(cherry picked from commit 7261fcccda0c0e044ec1cef61ac317574c695768)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/DomainModule.kt
#	app/src/main/java/eu/kanade/presentation/source/SourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SelectionHeader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SourceAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SourceHolder.kt
#	app/src/main/res/layout/source_main_controller_item.xml
2022-05-01 14:58:53 -04:00
Jobobby04
c9ec7921a5 Revert "Revert history Compose/SQLDelight changes"
This reverts commit 6a0b523e86d0c6f4c517236d4b18b7d0d6e9fcbe.
2022-04-22 19:40:09 -04:00
Jobobby04
6a0b523e86 Revert history Compose/SQLDelight changes 2022-04-22 19:27:15 -04:00
Andreas
5c9f98bff1 Add indexes to creational tables (#6974)
(cherry picked from commit b4981058a24a150c55626d515358612aa0f61a12)
2022-04-22 19:21:09 -04:00
Jobobby04
4a115785eb Add SY specific queries to sqldelight files 2022-04-22 19:16:48 -04:00
Andreas
a8cb77cc7e Migrate History screen database calls to SQLDelight (#6933)
* Migrate History screen database call to SQLDelight

- Move all migrations to SQLDelight
- Move all tables to SQLDelight

Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>

* Changes from review comments

* Add adapters to database

* Remove logging of database version in App

* Change query name for paging source queries

* Update migrations

* Make SQLite Callback handle migration

- To ensure it updates the database

* Use SQLDelight Schema version for Callback database version

Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
(cherry picked from commit b1f46ed8302411fbd884bbc3c26fe28a378fd91a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/HistoryQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/database/ClearDatabasePresenter.kt
#	build.gradle.kts
2022-04-22 10:08:31 -04:00