卷按钮

This commit is contained in:
HapeLee
2025-11-15 15:00:46 +08:00
parent 23f4347274
commit 9e43e085c1
3 changed files with 16 additions and 5 deletions
@@ -33,4 +33,5 @@ object EventBus {
const val EXPORT_BOOK = "exportBook" const val EXPORT_BOOK = "exportBook"
const val UP_MANGA_CONFIG = "upMangaConfig" const val UP_MANGA_CONFIG = "upMangaConfig"
const val PLAY_MODE_CHANGED = "playModeChanged" const val PLAY_MODE_CHANGED = "playModeChanged"
const val UP_TOC = "upToc"
} }
@@ -38,6 +38,7 @@ import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.dpToPx import io.legado.app.utils.dpToPx
import io.legado.app.utils.gone import io.legado.app.utils.gone
import io.legado.app.utils.observeEvent import io.legado.app.utils.observeEvent
import io.legado.app.utils.postEvent
import io.legado.app.utils.themeColor import io.legado.app.utils.themeColor
import io.legado.app.utils.toastOnUi import io.legado.app.utils.toastOnUi
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
@@ -369,6 +370,7 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
}.let { }.let {
adapter.setItems(it) adapter.setItems(it)
} }
postEvent(EventBus.UP_TOC,true)
} }
} }
@@ -26,7 +26,9 @@ import androidx.fragment.app.FragmentPagerAdapter
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.VMBaseActivity import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.EventBus
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.databinding.ActivityChapterListBinding import io.legado.app.databinding.ActivityChapterListBinding
import io.legado.app.databinding.DialogDownloadChoiceBinding import io.legado.app.databinding.DialogDownloadChoiceBinding
import io.legado.app.help.book.isLocalTxt import io.legado.app.help.book.isLocalTxt
@@ -40,8 +42,10 @@ import io.legado.app.ui.file.HandleFileContract
import io.legado.app.ui.replace.ReplaceRuleActivity import io.legado.app.ui.replace.ReplaceRuleActivity
import io.legado.app.ui.replace.edit.ReplaceEditActivity import io.legado.app.ui.replace.edit.ReplaceEditActivity
import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.ui.widget.dialog.WaitDialog
import io.legado.app.utils.applyTint
import io.legado.app.utils.gone import io.legado.app.utils.gone
import io.legado.app.utils.hideSoftInput import io.legado.app.utils.hideSoftInput
import io.legado.app.utils.observeEvent
import io.legado.app.utils.shouldHideSoftInput import io.legado.app.utils.shouldHideSoftInput
import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
@@ -110,11 +114,9 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>(),
private fun setupMoreMenuButton() { private fun setupMoreMenuButton() {
val tag = "android:switcher:${binding.viewPager.id}:0" val tag = "android:switcher:${binding.viewPager.id}:0"
binding.viewPager.postDelayed({ val chapterFragment = supportFragmentManager.findFragmentByTag(tag) as? ChapterListFragment
val chapterFragment = supportFragmentManager.findFragmentByTag(tag) as? ChapterListFragment val volumes = chapterFragment?.getAllVolumes().orEmpty()
val volumes = chapterFragment?.getAllVolumes().orEmpty() binding.btnChapterMenu.isVisible = volumes.isNotEmpty()
binding.btnChapterMenu.isVisible = volumes.isNotEmpty()
}, 200)
binding.btnChapterMenu.setOnClickListener { view -> binding.btnChapterMenu.setOnClickListener { view ->
showChapterActionsMenu(view) showChapterActionsMenu(view)
} }
@@ -172,6 +174,12 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>(),
popup.show() popup.show()
} }
override fun observeLiveBus() {
observeEvent<Boolean>(EventBus.UP_TOC) {
setupMoreMenuButton()
}
}
override fun dispatchTouchEvent(ev: MotionEvent): Boolean { override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
if (ev.action == MotionEvent.ACTION_DOWN) { if (ev.action == MotionEvent.ACTION_DOWN) {
currentFocus?.let { currentFocus?.let {