From a774d2d9159efa617ecc24be0f86f7cfe52eb364 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 3 Apr 2020 20:45:18 +0300 Subject: [PATCH] Read from start quick action --- .../ui/details/MangaDetailsFragment.kt | 69 ++++++++++++++----- app/src/main/res/menu/popup_read.xml | 8 +++ app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/menu/popup_read.xml diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt index dc99dcd2c..1f1b26467 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt @@ -17,10 +17,13 @@ import org.koitharu.kotatsu.ui.main.list.favourites.categories.FavouriteCategori import org.koitharu.kotatsu.ui.reader.ReaderActivity import org.koitharu.kotatsu.ui.search.MangaSearchSheet import org.koitharu.kotatsu.utils.ext.addChips +import org.koitharu.kotatsu.utils.ext.showPopupMenu import org.koitharu.kotatsu.utils.ext.textAndVisible import kotlin.math.roundToInt -class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetailsView, View.OnClickListener { +class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetailsView, + View.OnClickListener, + View.OnLongClickListener { @Suppress("unused") private val presenter by moxyPresenter(factory = MangaDetailsPresenter.Companion::getInstance) @@ -64,9 +67,9 @@ class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetai onClickListener = this@MangaDetailsFragment ) } - imageView_favourite.setOnClickListener { - FavouriteCategoriesDialog.show(childFragmentManager, manga) - } + imageView_favourite.setOnClickListener(this) + button_read.setOnClickListener(this) + button_read.setOnLongClickListener(this) updateReadButton() } @@ -96,11 +99,52 @@ class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetai override fun onNewChaptersChanged(newChapters: Int) = Unit override fun onClick(v: View) { - if (v is Chip) { - when(val tag = v.tag) { - is String -> MangaSearchSheet.show(activity?.supportFragmentManager ?: childFragmentManager, - manga?.source ?: return, tag) + when { + v.id == R.id.imageView_favourite -> { + FavouriteCategoriesDialog.show(childFragmentManager, manga ?: return) } + v.id == R.id.button_read -> { + startActivity( + ReaderActivity.newIntent( + context ?: return, + manga ?: return, + history + ) + ) + } + v is Chip -> { + when (val tag = v.tag) { + is String -> MangaSearchSheet.show(activity?.supportFragmentManager + ?: childFragmentManager, + manga?.source ?: return, tag) + } + } + } + } + + override fun onLongClick(v: View): Boolean { + when { + v.id == R.id.button_read -> { + if (history == null) { + return false + } + v.showPopupMenu(R.menu.popup_read) { + when (it.itemId) { + R.id.action_read -> { + startActivity( + ReaderActivity.newIntent( + context ?: return@showPopupMenu false, + manga ?: return@showPopupMenu false + ) + ) + true + } + else -> false + } + } + return true + } + else -> return false } } @@ -116,15 +160,6 @@ class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetai button_read.setText(R.string._continue) button_read.setIconResource(R.drawable.ic_play) } - button_read.setOnClickListener { - startActivity( - ReaderActivity.newIntent( - context ?: return@setOnClickListener, - manga ?: return@setOnClickListener, - history - ) - ) - } } } } \ No newline at end of file diff --git a/app/src/main/res/menu/popup_read.xml b/app/src/main/res/menu/popup_read.xml new file mode 100644 index 000000000..ee4f1904c --- /dev/null +++ b/app/src/main/res/menu/popup_read.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a075f69fe..e575b9d40 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -116,4 +116,5 @@ Новые главы Уведомлять об обновлении манги, которую Вы читаете Загрузить + Читать с начала \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 210e5791c..a47479175 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -117,4 +117,5 @@ New chapters Notify about updates of manga you are reading Download + Read from start \ No newline at end of file