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" />