From 3a5e23550ff0a1f5be7e03138f63ab4960716f82 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sat, 6 May 2023 18:58:06 -0400 Subject: [PATCH] Always retry when its a NPE --- .../domain/manga/interactor/GetLibraryManga.kt | 15 ++++++++------- .../domain/updates/interactor/GetUpdates.kt | 15 ++++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/domain/src/main/java/tachiyomi/domain/manga/interactor/GetLibraryManga.kt b/domain/src/main/java/tachiyomi/domain/manga/interactor/GetLibraryManga.kt index 9efba1be6..052c3dbd7 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/interactor/GetLibraryManga.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/interactor/GetLibraryManga.kt @@ -1,10 +1,11 @@ package tachiyomi.domain.manga.interactor +import kotlinx.coroutines.delay 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 +import kotlin.time.Duration.Companion.seconds class GetLibraryManga( private val mangaRepository: MangaRepository, @@ -17,12 +18,12 @@ class GetLibraryManga( fun subscribe(): Flow> { return mangaRepository.getLibraryMangaAsFlow() // SY --> - .let { - var retries = 0 - it.retry { - (retries++ < 3) && it is NullPointerException - }.onEach { - retries = 0 + .retry { + if (it is NullPointerException) { + delay(5.seconds) + true + } else { + false } } // SY <-- diff --git a/domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt b/domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt index e6b364886..59799954d 100644 --- a/domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt +++ b/domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt @@ -1,11 +1,12 @@ package tachiyomi.domain.updates.interactor +import kotlinx.coroutines.delay 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 +import kotlin.time.Duration.Companion.seconds class GetUpdates( private val repository: UpdatesRepository, @@ -20,12 +21,12 @@ class GetUpdates( fun subscribe(after: Long): Flow> { return repository.subscribeAll(after) // SY --> - .let { - var retries = 0 - it.retry { - (retries++ < 3) && it is NullPointerException - }.onEach { - retries = 0 + .retry { + if (it is NullPointerException) { + delay(5.seconds) + true + } else { + false } } // SY <--