diff --git a/app/src/main/java/org/linphone/ui/main/history/fragment/StartCallFragment.kt b/app/src/main/java/org/linphone/ui/main/history/fragment/StartCallFragment.kt index 62344ec93..e5dffd716 100644 --- a/app/src/main/java/org/linphone/ui/main/history/fragment/StartCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/history/fragment/StartCallFragment.kt @@ -58,6 +58,16 @@ class StartCallFragment : GenericAddressPickerFragment() { override lateinit var viewModel: StartCallViewModel + private val bottomSheetCallback = object : BottomSheetBehavior.BottomSheetCallback() { + override fun onStateChanged(bottomSheet: View, newState: Int) { + if (newState == BottomSheetBehavior.STATE_COLLAPSED || newState == BottomSheetBehavior.STATE_HIDDEN) { + viewModel.isNumpadVisible.value = false + } + } + + override fun onSlide(bottomSheet: View, slideOffset: Float) { } + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -144,12 +154,15 @@ class StartCallFragment : GenericAddressPickerFragment() { } } + val bottomSheetBehavior = BottomSheetBehavior.from(binding.numpadLayout.root) + bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED + bottomSheetBehavior.addBottomSheetCallback(bottomSheetCallback) + viewModel.isNumpadVisible.observe(viewLifecycleOwner) { visible -> - val standardBottomSheetBehavior = BottomSheetBehavior.from(binding.numpadLayout.root) if (visible) { - standardBottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED + bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED } else { - standardBottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED + bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED } } diff --git a/app/src/main/res/layout/start_call_fragment.xml b/app/src/main/res/layout/start_call_fragment.xml index d8a8a0193..1d0556f37 100644 --- a/app/src/main/res/layout/start_call_fragment.xml +++ b/app/src/main/res/layout/start_call_fragment.xml @@ -267,6 +267,22 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent" /> + +