From 9762a466ce9d6a7662932cf94fc6a385fdf9ac0f Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sun, 5 Jul 2020 16:45:34 +0300 Subject: [PATCH] Fix Mangalib pages loading --- .../kotatsu/core/parser/LocalMangaRepository.kt | 3 ++- .../kotatsu/domain/favourites/FavouritesRepository.kt | 4 ++-- .../kotatsu/domain/history/HistoryRepository.kt | 3 ++- .../java/org/koitharu/kotatsu/ui/reader/PageLoader.kt | 10 ++++++---- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/LocalMangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/LocalMangaRepository.kt index bd0a54cd7..0f944e655 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/LocalMangaRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/LocalMangaRepository.kt @@ -3,6 +3,7 @@ package org.koitharu.kotatsu.core.parser import android.annotation.SuppressLint import android.content.Context import android.net.Uri +import androidx.collection.ArraySet import androidx.core.net.toFile import androidx.core.net.toUri import org.koin.core.KoinComponent @@ -97,7 +98,7 @@ class LocalMangaRepository : MangaRepository, KoinComponent { } // fallback val title = file.nameWithoutExtension.replace("_", " ").capitalize() - val chapters = HashSet() + val chapters = ArraySet() for (x in zip.entries()) { if (!x.isDirectory) { chapters += x.name.substringBeforeLast(File.separatorChar, "") diff --git a/app/src/main/java/org/koitharu/kotatsu/domain/favourites/FavouritesRepository.kt b/app/src/main/java/org/koitharu/kotatsu/domain/favourites/FavouritesRepository.kt index fcbba0119..70dbf46c9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/domain/favourites/FavouritesRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/domain/favourites/FavouritesRepository.kt @@ -1,5 +1,6 @@ package org.koitharu.kotatsu.domain.favourites +import androidx.collection.ArraySet import androidx.room.withTransaction import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -12,7 +13,6 @@ import org.koitharu.kotatsu.core.db.entity.MangaEntity import org.koitharu.kotatsu.core.db.entity.TagEntity import org.koitharu.kotatsu.core.model.FavouriteCategory import org.koitharu.kotatsu.core.model.Manga -import java.util.* class FavouritesRepository : KoinComponent { @@ -98,7 +98,7 @@ class FavouritesRepository : KoinComponent { companion object { - private val listeners = HashSet() + private val listeners = ArraySet() fun subscribe(listener: OnFavouritesChangeListener) { listeners += listener diff --git a/app/src/main/java/org/koitharu/kotatsu/domain/history/HistoryRepository.kt b/app/src/main/java/org/koitharu/kotatsu/domain/history/HistoryRepository.kt index c22db90fb..b64cdbd81 100644 --- a/app/src/main/java/org/koitharu/kotatsu/domain/history/HistoryRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/domain/history/HistoryRepository.kt @@ -1,5 +1,6 @@ package org.koitharu.kotatsu.domain.history +import androidx.collection.ArraySet import androidx.room.withTransaction import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -71,7 +72,7 @@ class HistoryRepository : KoinComponent { companion object { - private val listeners = HashSet() + private val listeners = ArraySet() fun subscribe(listener: OnHistoryChangeListener) { listeners += listener diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageLoader.kt b/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageLoader.kt index b22312f54..de38b44f9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageLoader.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageLoader.kt @@ -1,6 +1,7 @@ package org.koitharu.kotatsu.ui.reader import android.net.Uri +import android.util.ArrayMap import kotlinx.coroutines.* import okhttp3.OkHttpClient import okhttp3.Request @@ -16,7 +17,7 @@ import kotlin.coroutines.CoroutineContext class PageLoader : KoinComponent, CoroutineScope, DisposableHandle { private val job = SupervisorJob() - private val tasks = HashMap>() + private val tasks = ArrayMap>() private val okHttp by inject() private val cache by inject() @@ -48,16 +49,17 @@ class PageLoader : KoinComponent, CoroutineScope, DisposableHandle { val request = Request.Builder() .url(url) .get() + .header("Accept", "image/webp,image/png;q=0.9,image/jpeg,*/*;q=0.8") .cacheControl(CacheUtils.CONTROL_DISABLED) .build() okHttp.newCall(request).await().use { response -> val body = response.body - checkNotNull(body) { - "Null response" - } check(response.isSuccessful) { "Invalid response: ${response.code} ${response.message}" } + checkNotNull(body) { + "Null response" + } cache.put(url) { out -> body.byteStream().copyTo(out) }