v5.3
Build Futon with Niadd patch / Build Futon Niadd debug APK (push) Successful in 3m48s

This commit is contained in:
2026-08-11 23:48:07 +03:00
parent d090703b4d
commit 40dab4faf2
+11 -37
View File
@@ -515,44 +515,18 @@ index 18d203d..02b1653 100644
private const val PREFETCH_LIMIT_DEFAULT = 6
private const val PREFETCH_MIN_RAM_MB = 80L
diff --git a/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt b/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
--- a/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
+++ b/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
@@ -15,6 +15,7 @@
import io.github.landwarderer.futon.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaPage
+import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import io.github.landwarderer.futon.reader.ui.ReaderState
import kotlinx.coroutines.Dispatchers
@@ -31,6 +32,7 @@
private val mangaRepositoryFactory: MangaRepository.Factory,
@MangaHttpClient private val okHttpClient: OkHttpClient,
private val imageProxyInterceptor: ImageProxyInterceptor,
+ private val pageLoader: PageLoader,
) {
@@ -32,7 +32,10 @@ class DetectReaderModeUseCase @Inject constructor(
suspend operator fun invoke(manga: Manga, state: ReaderState?): ReaderMode {
dataRepository.getReaderMode(manga.id)?.let { return it }
@@ -60,8 +62,11 @@
private suspend fun guessMangaIsWebtoon(repository: MangaRepository, pages: List<MangaPage>): Boolean {
val pageIndex = (pages.size * 0.3).roundToInt()
val page = requireNotNull(pages.getOrNull(pageIndex)) { "No pages" }
- val url = repository.getPageUrl(page)
- val uri = url.toUri()
+ val uri = if (page.source == MangaParserSource.NINEMANGA_RU) {
+ pageLoader.loadPage(page, force = false)
+ } else {
+ repository.getPageUrl(page).toUri()
+ }
val size = when {
uri.isZipUri() -> runInterruptible(Dispatchers.IO) {
ZipFile(uri.schemeSpecificPart).use { zip ->
@@ -78,7 +83,7 @@
}
}
else -> {
- val request = PageLoader.createPageRequest(url, page.source)
+ val request = PageLoader.createPageRequest(uri.toString(), page.source)
imageProxyInterceptor.interceptPageRequest(request, okHttpClient).use {
runInterruptible(Dispatchers.IO) {
getBitmapSize(it.body?.byteStream())
val defaultMode = settings.defaultReaderMode
- if (!settings.isReaderModeDetectionEnabled || defaultMode == ReaderMode.WEBTOON) {
+ if (
+ manga.source == org.koitharu.kotatsu.parsers.model.MangaParserSource.NINEMANGA_RU ||
+ !settings.isReaderModeDetectionEnabled || defaultMode == ReaderMode.WEBTOON
+ ) {
return defaultMode
}
val chapter = state?.let { manga.findChapterById(it.chapterId) }