Fix Continue button in offline mode
parent
91f46de547
commit
fc8a5ccd9f
@ -0,0 +1,31 @@
|
|||||||
|
package org.koitharu.kotatsu.main.domain
|
||||||
|
|
||||||
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
import kotlinx.coroutines.flow.combine
|
||||||
|
import kotlinx.coroutines.flow.flatMapLatest
|
||||||
|
import kotlinx.coroutines.flow.flowOf
|
||||||
|
import org.koitharu.kotatsu.core.os.NetworkState
|
||||||
|
import org.koitharu.kotatsu.core.prefs.AppSettings
|
||||||
|
import org.koitharu.kotatsu.core.prefs.observeAsFlow
|
||||||
|
import org.koitharu.kotatsu.history.data.HistoryRepository
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaSource
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
class ReadingResumeEnabledUseCase @Inject constructor(
|
||||||
|
private val networkState: NetworkState,
|
||||||
|
private val historyRepository: HistoryRepository,
|
||||||
|
private val settings: AppSettings,
|
||||||
|
) {
|
||||||
|
|
||||||
|
operator fun invoke(): Flow<Boolean> = settings.observeAsFlow(AppSettings.KEY_INCOGNITO_MODE) {
|
||||||
|
isIncognitoModeEnabled
|
||||||
|
}.flatMapLatest { incognito ->
|
||||||
|
if (incognito) {
|
||||||
|
flowOf(false)
|
||||||
|
} else {
|
||||||
|
combine(networkState, historyRepository.observeLast()) { isOnline, last ->
|
||||||
|
last != null && (isOnline || last.source == MangaSource.LOCAL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue