From c80dc08d6cbbb5daa8ea280cc3d17d6fdf4ca7f4 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 16 Jan 2024 15:23:46 +0200 Subject: [PATCH] Fix details activity tabs --- .../kotatsu/details/ui/ChaptersBottomSheetMediator.kt | 11 +++++++++-- .../koitharu/kotatsu/details/ui/DetailsActivity.kt | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/ChaptersBottomSheetMediator.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/ChaptersBottomSheetMediator.kt index 83f6a38b1..0bf10ad63 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/ChaptersBottomSheetMediator.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/ChaptersBottomSheetMediator.kt @@ -8,12 +8,15 @@ import androidx.activity.OnBackPressedCallback import androidx.appcompat.view.ActionMode import androidx.viewpager2.widget.ViewPager2 import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.tabs.TabLayout import org.koitharu.kotatsu.core.ui.util.ActionModeListener import org.koitharu.kotatsu.core.util.ext.doOnExpansionsChanged +import org.koitharu.kotatsu.core.util.ext.setTabsEnabled class ChaptersBottomSheetMediator( private val behavior: BottomSheetBehavior<*>, private val pager: ViewPager2, + private val tabLayout: TabLayout, ) : OnBackPressedCallback(false), ActionModeListener, OnLayoutChangeListener, View.OnGenericMotionListener { @@ -75,8 +78,7 @@ class ChaptersBottomSheetMediator( fun lock() { lockCounter++ - behavior.isDraggable = lockCounter <= 0 - pager.isUserInputEnabled = lockCounter <= 0 + updateLock() } fun unlock() { @@ -84,7 +86,12 @@ class ChaptersBottomSheetMediator( if (lockCounter < 0) { lockCounter = 0 } + updateLock() + } + + private fun updateLock() { behavior.isDraggable = lockCounter <= 0 pager.isUserInputEnabled = lockCounter <= 0 + tabLayout.setTabsEnabled(lockCounter <= 0) } } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt index 2957c0bb2..125185ea4 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt @@ -107,7 +107,7 @@ class DetailsActivity : if (viewBinding.layoutBottom != null) { val behavior = BottomSheetBehavior.from(checkNotNull(viewBinding.layoutBottom)) - val bsMediator = ChaptersBottomSheetMediator(behavior, viewBinding.pager) + val bsMediator = ChaptersBottomSheetMediator(behavior, viewBinding.pager, viewBinding.tabs) actionModeDelegate.addListener(bsMediator) checkNotNull(viewBinding.layoutBsHeader).addOnLayoutChangeListener(bsMediator) onBackPressedDispatcher.addCallback(bsMediator)