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 {
|
suspend fun parseToManga(manga: MangaInfo, input: I): MangaInfo {
|
||||||
val mangaId = manga.id()
|
val mangaId = manga.id()
|
||||||
val metadata = if (mangaId != null) {
|
val metadata = if (mangaId != null) {
|
||||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeOnIO()
|
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeAsBlocking()
|
||||||
flatMetadata?.raise(metaClass) ?: newMetaInstance()
|
flatMetadata?.raise(metaClass) ?: newMetaInstance()
|
||||||
} else newMetaInstance()
|
} else newMetaInstance()
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
|
|||||||
*/
|
*/
|
||||||
suspend fun fetchOrLoadMetadata(mangaId: Long?, inputProducer: suspend () -> I): M {
|
suspend fun fetchOrLoadMetadata(mangaId: Long?, inputProducer: suspend () -> I): M {
|
||||||
val meta = if (mangaId != null) {
|
val meta = if (mangaId != null) {
|
||||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeOnIO()
|
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeAsBlocking()
|
||||||
flatMetadata?.raise(metaClass)
|
flatMetadata?.raise(metaClass)
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
@ -114,7 +114,7 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
|
|||||||
|
|
||||||
fun getDescriptionAdapter(controller: MangaController): RecyclerView.Adapter<*>?
|
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 SManga.id get() = (this as? Manga)?.id
|
||||||
val SChapter.mangaId get() = (this as? Chapter)?.manga_id
|
val SChapter.mangaId get() = (this as? Chapter)?.manga_id
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,9 @@ class GalleryAdder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fetch and copy details
|
// Fetch and copy details
|
||||||
val newManga = source.getMangaDetails(manga.toMangaInfo())
|
val newManga = maybeRunBlocking(protectTrans) {
|
||||||
|
source.getMangaDetails(manga.toMangaInfo())
|
||||||
|
}
|
||||||
manga.copyFrom(newManga.toSManga())
|
manga.copyFrom(newManga.toSManga())
|
||||||
manga.initialized = true
|
manga.initialized = true
|
||||||
|
|
||||||
|
@ -48,9 +48,9 @@ class ApiMangaParser(
|
|||||||
}
|
}
|
||||||
|
|
||||||
suspend fun parseToManga(manga: MangaInfo, input: MangaResponse, sourceId: Long): MangaInfo {
|
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 metadata = if (mangaId != null) {
|
||||||
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeOnIO()
|
val flatMetadata = db.getFlatMetadataForManga(mangaId).executeAsBlocking()
|
||||||
flatMetadata?.raise(metaClass) ?: newMetaInstance()
|
flatMetadata?.raise(metaClass) ?: newMetaInstance()
|
||||||
} else newMetaInstance()
|
} else newMetaInstance()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user