From aef23e26e5c1c82588007f8a34698584ba9e7760 Mon Sep 17 00:00:00 2001 From: "Thomas W." Date: Wed, 15 Jan 2025 13:44:17 +0100 Subject: [PATCH] fix: back navigation from comment replies (#6954) --- .../com/github/libretube/ui/sheets/CommentsSheet.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/com/github/libretube/ui/sheets/CommentsSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/CommentsSheet.kt index f22372207..517ccfaaa 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/CommentsSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/CommentsSheet.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.activity.ComponentDialog +import androidx.activity.addCallback import androidx.core.view.isVisible import androidx.fragment.app.activityViewModels import androidx.fragment.app.commit @@ -20,6 +22,14 @@ class CommentsSheet : ExpandablePlayerSheet() { private val commonPlayerViewModel: CommonPlayerViewModel by activityViewModels() + private val backPressedCallback by lazy(LazyThreadSafetyMode.NONE) { + (dialog as ComponentDialog?)?.onBackPressedDispatcher?.addCallback(owner = viewLifecycleOwner, enabled = false) { + if (childFragmentManager.backStackEntryCount > 0) { + childFragmentManager.popBackStack() + } + } + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -70,6 +80,7 @@ class CommentsSheet : ExpandablePlayerSheet() { fun updateFragmentInfo(showBackButton: Boolean, title: String) { binding.btnBack.isVisible = showBackButton binding.commentsTitle.text = title + backPressedCallback?.isEnabled = showBackButton } companion object {