From 06d8e903fccb0d22354e1c822578ee67c7ec2728 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 3 Apr 2025 09:47:22 +0200 Subject: [PATCH] Revert "Trying to prevent bottom bar from disappearing sometimes", trying better fix instead This reverts commit 317a7c44170777cb7a294ccc0078241f48bb16fc. --- .../ui/main/fragment/AbstractMainFragment.kt | 23 ++++++++++++++----- .../main/res/layout/chat_list_fragment.xml | 5 ++-- .../res/layout/contacts_list_fragment.xml | 7 +++--- .../main/res/layout/history_list_fragment.xml | 5 ++-- .../res/layout/meetings_list_fragment.xml | 5 ++-- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt b/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt index 189881a79..e691f515b 100644 --- a/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt @@ -72,6 +72,8 @@ abstract class AbstractMainFragment : GenericMainFragment() { private var currentFragmentId: Int = 0 + private lateinit var navigationBar: View + private lateinit var viewModel: AbstractMainViewModel private val backPressedCallback = object : OnBackPressedCallback(false) { @@ -201,9 +203,10 @@ abstract class AbstractMainFragment : GenericMainFragment() { navBar: BottomNavBarBinding, @IdRes fragmentId: Int ) { + navigationBar = navBar.root + initSlidingPane(slidingPane) initSearchBar(topBar.search) - initBottomNavBar(navBar.root) initNavigation(fragmentId) } @@ -228,6 +231,7 @@ abstract class AbstractMainFragment : GenericMainFragment() { it.consume { if (slidingPane.isSlideable) { Log.d("$TAG Closing sliding pane") + ensureNavigationBarIsVisible() slidingPane.closePane() } } @@ -256,7 +260,9 @@ abstract class AbstractMainFragment : GenericMainFragment() { slidingPane.removePanelSlideListener(this) } - override fun onPanelClosed(panel: View) { } + override fun onPanelClosed(panel: View) { + ensureNavigationBarIsVisible() + } }) } slidingPane.openPane() @@ -285,15 +291,20 @@ abstract class AbstractMainFragment : GenericMainFragment() { searchBar.showKeyboard() } else { searchBar.hideKeyboard() + ensureNavigationBarIsVisible() } } } + + searchBar.setKeyboardInsetListener { keyboardVisible -> + val portraitOrientation = resources.configuration.orientation != Configuration.ORIENTATION_LANDSCAPE + navigationBar.visibility = if (!portraitOrientation || !keyboardVisible) View.VISIBLE else View.GONE + } } - private fun initBottomNavBar(navBar: View) { - view?.setKeyboardInsetListener { keyboardVisible -> - val portraitOrientation = resources.configuration.orientation != Configuration.ORIENTATION_LANDSCAPE - navBar.visibility = if (!portraitOrientation || !keyboardVisible) View.VISIBLE else View.GONE + private fun ensureNavigationBarIsVisible() { + if (::navigationBar.isInitialized) { + navigationBar.visibility = View.VISIBLE } } diff --git a/app/src/main/res/layout/chat_list_fragment.xml b/app/src/main/res/layout/chat_list_fragment.xml index b59c17bbc..ca9901314 100644 --- a/app/src/main/res/layout/chat_list_fragment.xml +++ b/app/src/main/res/layout/chat_list_fragment.xml @@ -58,9 +58,10 @@ android:id="@+id/conversations_list" android:background="@drawable/shape_squircle_white_r20_top_background" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="0dp" android:layout_marginTop="@dimen/top_bar_height" - android:layout_marginBottom="@dimen/portrait_nav_bar_height" /> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_nav_bar" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_nav_bar" /> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_nav_bar" />