Use the same thread for db operations in places where trans are possible
This commit is contained in:
parent
447ddfd8d5
commit
e2324df0cc
@ -60,7 +60,7 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
|
||||
suspend fun parseToManga(manga: MangaInfo, input: I): MangaInfo {
|
||||
val mangaId = manga.id()
|
||||
val metadata = if (mangaId != null) {
|
||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeOnIO()
|
||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeAsBlocking()
|
||||
flatMetadata?.raise(metaClass) ?: newMetaInstance()
|
||||
} else newMetaInstance()
|
||||
|
||||
@ -96,7 +96,7 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
|
||||
*/
|
||||
suspend fun fetchOrLoadMetadata(mangaId: Long?, inputProducer: suspend () -> I): M {
|
||||
val meta = if (mangaId != null) {
|
||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeOnIO()
|
||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeAsBlocking()
|
||||
flatMetadata?.raise(metaClass)
|
||||
} else {
|
||||
null
|
||||
@ -114,7 +114,7 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
|
||||
|
||||
fun getDescriptionAdapter(controller: MangaController): RecyclerView.Adapter<*>?
|
||||
|
||||
suspend fun MangaInfo.id() = db.getManga(key, id).executeOnIO()?.id
|
||||
fun MangaInfo.id() = db.getManga(key, id).executeAsBlocking()?.id
|
||||
val SManga.id get() = (this as? Manga)?.id
|
||||
val SChapter.mangaId get() = (this as? Chapter)?.manga_id
|
||||
}
|
||||
|
@ -134,7 +134,9 @@ class GalleryAdder {
|
||||
}
|
||||
|
||||
// Fetch and copy details
|
||||
val newManga = source.getMangaDetails(manga.toMangaInfo())
|
||||
val newManga = maybeRunBlocking(protectTrans) {
|
||||
source.getMangaDetails(manga.toMangaInfo())
|
||||
}
|
||||
manga.copyFrom(newManga.toSManga())
|
||||
manga.initialized = true
|
||||
|
||||
|
@ -48,9 +48,9 @@ class ApiMangaParser(
|
||||
}
|
||||
|
||||
suspend fun parseToManga(manga: MangaInfo, input: MangaResponse, sourceId: Long): MangaInfo {
|
||||
val mangaId = db.getManga(manga.key, sourceId).executeOnIO()?.id
|
||||
val mangaId = db.getManga(manga.key, sourceId).executeAsBlocking()?.id
|
||||
val metadata = if (mangaId != null) {
|
||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeOnIO()
|
||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeAsBlocking()
|
||||
flatMetadata?.raise(metaClass) ?: newMetaInstance()
|
||||
} else newMetaInstance()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user