Retry a few times if library or updates crash

This commit is contained in:
Jobobby04 2023-03-16 18:23:20 -04:00
parent afab9c236d
commit 5abab75d26
2 changed files with 24 additions and 0 deletions

View File

@ -1,6 +1,8 @@
package tachiyomi.domain.manga.interactor
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.retry
import tachiyomi.domain.library.model.LibraryManga
import tachiyomi.domain.manga.repository.MangaRepository
@ -14,5 +16,15 @@ class GetLibraryManga(
fun subscribe(): Flow<List<LibraryManga>> {
return mangaRepository.getLibraryMangaAsFlow()
// SY -->
.let {
var retries = 0
it.retry {
(retries++ < 3) && it is NullPointerException
}.onEach {
retries = 0
}
}
// SY <--
}
}

View File

@ -1,6 +1,8 @@
package tachiyomi.domain.updates.interactor
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.retry
import tachiyomi.domain.updates.model.UpdatesWithRelations
import tachiyomi.domain.updates.repository.UpdatesRepository
import java.util.Calendar
@ -17,6 +19,16 @@ class GetUpdates(
fun subscribe(after: Long): Flow<List<UpdatesWithRelations>> {
return repository.subscribeAll(after)
// SY -->
.let {
var retries = 0
it.retry {
(retries++ < 3) && it is NullPointerException
}.onEach {
retries = 0
}
}
// SY <--
}
fun subscribe(read: Boolean, after: Long): Flow<List<UpdatesWithRelations>> {