|
|
|
@ -58,17 +58,26 @@ class DetailsLoadUseCase @Inject constructor(
|
|
|
|
isLoaded = false,
|
|
|
|
isLoaded = false,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
val local = if (!manga.isLocal) {
|
|
|
|
if (manga.isLocal) {
|
|
|
|
async {
|
|
|
|
val details = getDetails(manga, force)
|
|
|
|
localMangaRepository.findSavedManga(manga)
|
|
|
|
send(
|
|
|
|
|
|
|
|
MangaDetails(
|
|
|
|
|
|
|
|
manga = details,
|
|
|
|
|
|
|
|
localManga = null,
|
|
|
|
|
|
|
|
override = override,
|
|
|
|
|
|
|
|
description = details.description?.parseAsHtml(withImages = false)?.trim(),
|
|
|
|
|
|
|
|
isLoaded = true,
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
return@channelFlow
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
val local = async {
|
|
|
|
null
|
|
|
|
localMangaRepository.findSavedManga(manga)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!force && networkState.isOfflineOrRestricted()) {
|
|
|
|
if (!force && networkState.isOfflineOrRestricted()) {
|
|
|
|
// try to avoid loading if has saved manga
|
|
|
|
// try to avoid loading if has saved manga
|
|
|
|
val localManga = local?.await()
|
|
|
|
val localManga = local.await()
|
|
|
|
if (manga.isLocal || localManga != null) {
|
|
|
|
if (localManga != null) {
|
|
|
|
send(
|
|
|
|
send(
|
|
|
|
MangaDetails(
|
|
|
|
MangaDetails(
|
|
|
|
manga = manga,
|
|
|
|
manga = manga,
|
|
|
|
@ -88,7 +97,7 @@ class DetailsLoadUseCase @Inject constructor(
|
|
|
|
send(
|
|
|
|
send(
|
|
|
|
MangaDetails(
|
|
|
|
MangaDetails(
|
|
|
|
manga = details,
|
|
|
|
manga = details,
|
|
|
|
localManga = local?.peek(),
|
|
|
|
localManga = local.peek(),
|
|
|
|
override = override,
|
|
|
|
override = override,
|
|
|
|
description = details.description?.parseAsHtml(withImages = false)?.trim(),
|
|
|
|
description = details.description?.parseAsHtml(withImages = false)?.trim(),
|
|
|
|
isLoaded = false,
|
|
|
|
isLoaded = false,
|
|
|
|
@ -97,14 +106,14 @@ class DetailsLoadUseCase @Inject constructor(
|
|
|
|
send(
|
|
|
|
send(
|
|
|
|
MangaDetails(
|
|
|
|
MangaDetails(
|
|
|
|
manga = details,
|
|
|
|
manga = details,
|
|
|
|
localManga = local?.await(),
|
|
|
|
localManga = local.await(),
|
|
|
|
override = override,
|
|
|
|
override = override,
|
|
|
|
description = details.description?.parseAsHtml(withImages = true)?.trim(),
|
|
|
|
description = details.description?.parseAsHtml(withImages = true)?.trim(),
|
|
|
|
isLoaded = true,
|
|
|
|
isLoaded = true,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
} catch (e: IOException) {
|
|
|
|
} catch (e: IOException) {
|
|
|
|
local?.await()?.manga?.also { localManga ->
|
|
|
|
local.await()?.manga?.also { localManga ->
|
|
|
|
send(
|
|
|
|
send(
|
|
|
|
MangaDetails(
|
|
|
|
MangaDetails(
|
|
|
|
manga = localManga,
|
|
|
|
manga = localManga,
|
|
|
|
|