From 4ffe9d7505fbad73608ccb809521e9d743c713cc Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Sun, 21 Apr 2024 07:36:23 -0500 Subject: [PATCH] fix: novel loading --- app/src/main/java/ani/dantotsu/Functions.kt | 17 +++++++++++++++++ .../dantotsu/media/novel/NovelReadFragment.kt | 3 ++- .../media/novel/NovelResponseAdapter.kt | 6 ++---- .../ani/dantotsu/parsers/OfflineNovelParser.kt | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/Functions.kt b/app/src/main/java/ani/dantotsu/Functions.kt index bf8a6059..56e8782d 100644 --- a/app/src/main/java/ani/dantotsu/Functions.kt +++ b/app/src/main/java/ani/dantotsu/Functions.kt @@ -636,6 +636,23 @@ fun ImageView.loadImage(file: FileUrl?, size: Int = 0) { } } +fun ImageView.loadImage(file: FileUrl?, width: Int = 0, height: Int = 0) { + file?.url = PrefManager.getVal(PrefName.ImageUrl).ifEmpty { file?.url ?: "" } + if (file?.url?.isNotEmpty() == true) { + tryWith { + if (file.url.startsWith("content://")) { + Glide.with(this.context).load(Uri.parse(file.url)).transition(withCrossFade()) + .override(width, height).into(this) + } else { + val glideUrl = GlideUrl(file.url) { file.headers } + Glide.with(this.context).load(glideUrl).transition(withCrossFade()).override(width, height) + .into(this) + } + } + } +} + + fun ImageView.loadLocalImage(file: File?, size: Int = 0) { if (file?.exists() == true) { tryWith { diff --git a/app/src/main/java/ani/dantotsu/media/novel/NovelReadFragment.kt b/app/src/main/java/ani/dantotsu/media/novel/NovelReadFragment.kt index 0b614564..c95328f6 100644 --- a/app/src/main/java/ani/dantotsu/media/novel/NovelReadFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/novel/NovelReadFragment.kt @@ -117,9 +117,10 @@ class NovelReadFragment : Fragment(), context ?: currContext()!!, MediaType.NOVEL, false, + media.mainName(), novel.name ) - val file = directory?.findFile(novel.name) + val file = directory?.findFile("0.epub") if (file?.exists() == false) return false val fileUri = file?.uri ?: return false val intent = Intent(context, NovelReaderActivity::class.java).apply { diff --git a/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt b/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt index 1f68b224..bd723319 100644 --- a/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt @@ -8,6 +8,7 @@ import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import ani.dantotsu.R import ani.dantotsu.databinding.ItemNovelResponseBinding +import ani.dantotsu.loadImage import ani.dantotsu.parsers.ShowResponse import ani.dantotsu.setAnimation import ani.dantotsu.snackString @@ -37,10 +38,7 @@ class NovelResponseAdapter( val binding = holder.binding val novel = list[position] setAnimation(fragment.requireContext(), holder.binding.root) - - val cover = GlideUrl(novel.coverUrl.url) { novel.coverUrl.headers } - Glide.with(binding.itemEpisodeImage).load(cover).override(400, 0) - .into(binding.itemEpisodeImage) + binding.itemEpisodeImage.loadImage(novel.coverUrl, 400, 0) val typedValue = TypedValue() fragment.requireContext().theme?.resolveAttribute( diff --git a/app/src/main/java/ani/dantotsu/parsers/OfflineNovelParser.kt b/app/src/main/java/ani/dantotsu/parsers/OfflineNovelParser.kt index 8f0fa2d1..7a3535e0 100644 --- a/app/src/main/java/ani/dantotsu/parsers/OfflineNovelParser.kt +++ b/app/src/main/java/ani/dantotsu/parsers/OfflineNovelParser.kt @@ -73,7 +73,7 @@ class OfflineNovelParser : NovelParser() { } val cover = directory?.findFile("cover.jpg")?.uri.toString() names.forEach { - returnList.add(ShowResponse(it, it, cover)) + returnList.add(ShowResponse(it, query, cover)) } } return returnList