From 694389ca2e46570ebad45d9ed5d34d7b283933c6 Mon Sep 17 00:00:00 2001 From: kunfei Date: Sun, 20 Mar 2022 11:41:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/info/BookInfoActivity.kt | 11 +++++-- .../io/legado/app/ui/book/read/PhotoDialog.kt | 31 +++++++++++++------ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index 68de91547..eef1bb942 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -30,6 +30,7 @@ import io.legado.app.ui.book.changecover.ChangeCoverDialog import io.legado.app.ui.book.changesource.ChangeBookSourceDialog import io.legado.app.ui.book.group.GroupSelectDialog import io.legado.app.ui.book.info.edit.BookInfoEditActivity +import io.legado.app.ui.book.read.PhotoDialog import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.book.search.SearchActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity @@ -104,7 +105,7 @@ class BookInfoActivity : viewModel.bookData.observe(this) { showBook(it) } viewModel.chapterListData.observe(this) { upLoading(false, it) } viewModel.initData(intent) - initOnClick() + initViewEvent() } override fun onCompatCreateOptionsMenu(menu: Menu): Boolean { @@ -263,7 +264,7 @@ class BookInfoActivity : } } - private fun initOnClick() = binding.run { + private fun initViewEvent() = binding.run { ivCover.setOnClickListener { viewModel.bookData.value?.let { showDialogFragment( @@ -271,6 +272,12 @@ class BookInfoActivity : ) } } + ivCover.setOnLongClickListener { + viewModel.bookData.value?.getDisplayCover()?.let { path -> + showDialogFragment(PhotoDialog(path)) + } + true + } tvRead.setOnClickListener { viewModel.bookData.value?.let { readBook(it) diff --git a/app/src/main/java/io/legado/app/ui/book/read/PhotoDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/PhotoDialog.kt index 040774339..4e4d9509e 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/PhotoDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/PhotoDialog.kt @@ -5,6 +5,7 @@ import android.view.View import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogPhotoViewBinding +import io.legado.app.model.BookCover import io.legado.app.model.ReadBook import io.legado.app.ui.book.read.page.provider.ImageProvider import io.legado.app.utils.setLayout @@ -22,6 +23,12 @@ class PhotoDialog() : BaseDialogFragment(R.layout.dialog_photo_view) { } } + constructor(path: String) : this() { + arguments = Bundle().apply { + putString("path", path) + } + } + private val binding by viewBinding(DialogPhotoViewBinding::bind) override fun onStart() { @@ -31,18 +38,24 @@ class PhotoDialog() : BaseDialogFragment(R.layout.dialog_photo_view) { override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { arguments?.let { - val chapterIndex = it.getInt("chapterIndex") - val src = it.getString("src") - ReadBook.book?.let { book -> - src?.let { - execute { - ImageProvider.getImage(book, chapterIndex, src, ReadBook.bookSource) - }.onSuccess { bitmap -> - if (bitmap != null) { - binding.photoView.setImageBitmap(bitmap) + val path = it.getString("path") + if (path.isNullOrEmpty()) { + val chapterIndex = it.getInt("chapterIndex") + val src = it.getString("src") + ReadBook.book?.let { book -> + src?.let { + execute { + ImageProvider.getImage(book, chapterIndex, src, ReadBook.bookSource) + }.onSuccess { bitmap -> + if (bitmap != null) { + binding.photoView.setImageBitmap(bitmap) + } } } } + } else { + BookCover.load(requireContext(), path = path) + .into(binding.photoView) } }