MangaController overhaul (#7244)
(cherry picked from commit 33a778873a)
# 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
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package eu.kanade.data.manga
|
||||
|
||||
import eu.kanade.data.DatabaseHandler
|
||||
import eu.kanade.data.exh.mergedMangaReferenceMapper
|
||||
import eu.kanade.domain.manga.model.Manga
|
||||
import eu.kanade.domain.manga.repository.MangaMergeRepository
|
||||
import exh.merged.sql.models.MergedMangaReference
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class MangaMergeRepositoryImpl(
|
||||
private val handler: DatabaseHandler,
|
||||
) : MangaMergeRepository {
|
||||
|
||||
override suspend fun getMergedMangaById(id: Long): List<Manga> {
|
||||
return handler.awaitList { mergedQueries.selectMergedMangasById(id, mangaMapper) }
|
||||
}
|
||||
|
||||
override suspend fun subscribeMergedMangaById(id: Long): Flow<List<Manga>> {
|
||||
return handler.subscribeToList { mergedQueries.selectMergedMangasById(id, mangaMapper) }
|
||||
}
|
||||
|
||||
override suspend fun getReferencesById(id: Long): List<MergedMangaReference> {
|
||||
return handler.awaitList { mergedQueries.selectByMergeId(id, mergedMangaReferenceMapper) }
|
||||
}
|
||||
|
||||
override suspend fun subscribeReferencesById(id: Long): Flow<List<MergedMangaReference>> {
|
||||
return handler.subscribeToList { mergedQueries.selectByMergeId(id, mergedMangaReferenceMapper) }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package eu.kanade.data.manga
|
||||
|
||||
import eu.kanade.data.DatabaseHandler
|
||||
import eu.kanade.data.exh.searchMetadataMapper
|
||||
import eu.kanade.data.exh.searchTagMapper
|
||||
import eu.kanade.data.exh.searchTitleMapper
|
||||
import eu.kanade.domain.manga.repository.MangaMetadataRepository
|
||||
import exh.metadata.sql.models.SearchMetadata
|
||||
import exh.metadata.sql.models.SearchTag
|
||||
import exh.metadata.sql.models.SearchTitle
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class MangaMetadataRepositoryImpl(
|
||||
private val handler: DatabaseHandler,
|
||||
) : MangaMetadataRepository {
|
||||
|
||||
override suspend fun getMetadataById(id: Long): SearchMetadata? {
|
||||
return handler.awaitOneOrNull { search_metadataQueries.selectByMangaId(id, searchMetadataMapper) }
|
||||
}
|
||||
|
||||
override suspend fun subscribeMetadataById(id: Long): Flow<SearchMetadata?> {
|
||||
return handler.subscribeToOneOrNull { search_metadataQueries.selectByMangaId(id, searchMetadataMapper) }
|
||||
}
|
||||
|
||||
override suspend fun getTagsById(id: Long): List<SearchTag> {
|
||||
return handler.awaitList { search_tagsQueries.selectByMangaId(id, searchTagMapper) }
|
||||
}
|
||||
|
||||
override suspend fun subscribeTagsById(id: Long): Flow<List<SearchTag>> {
|
||||
return handler.subscribeToList { search_tagsQueries.selectByMangaId(id, searchTagMapper) }
|
||||
}
|
||||
|
||||
override suspend fun getTitlesById(id: Long): List<SearchTitle> {
|
||||
return handler.awaitList { search_titlesQueries.selectByMangaId(id, searchTitleMapper) }
|
||||
}
|
||||
|
||||
override suspend fun subscribeTitlesById(id: Long): Flow<List<SearchTitle>> {
|
||||
return handler.subscribeToList { search_titlesQueries.selectByMangaId(id, searchTitleMapper) }
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package eu.kanade.data.manga
|
||||
|
||||
import eu.kanade.data.DatabaseHandler
|
||||
import eu.kanade.data.listOfStringsAdapter
|
||||
import eu.kanade.data.listOfStringsAndAdapter
|
||||
import eu.kanade.data.toLong
|
||||
import eu.kanade.domain.manga.model.Manga
|
||||
import eu.kanade.domain.manga.model.MangaUpdate
|
||||
@@ -22,6 +23,10 @@ class MangaRepositoryImpl(
|
||||
return handler.subscribeToOne { mangasQueries.getMangaById(id, mangaMapper) }
|
||||
}
|
||||
|
||||
override suspend fun getMangaByIdAsFlow(id: Long): Flow<Manga> {
|
||||
return handler.subscribeToOne { mangasQueries.getMangaById(id, mangaMapper) }
|
||||
}
|
||||
|
||||
override fun getFavoritesBySourceId(sourceId: Long): Flow<List<Manga>> {
|
||||
return handler.subscribeToList { mangasQueries.getFavoriteBySourceId(sourceId, mangaMapper) }
|
||||
}
|
||||
@@ -72,6 +77,7 @@ class MangaRepositoryImpl(
|
||||
coverLastModified = update.coverLastModified,
|
||||
dateAdded = update.dateAdded,
|
||||
mangaId = update.id,
|
||||
filteredScanlators = update.filteredScanlators?.let(listOfStringsAndAdapter::encode),
|
||||
)
|
||||
}
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user