From b75df4967f054946612081b19094422242e28522 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 9 Mar 2026 21:20:04 +0300 Subject: [PATCH] android: remove chats bottom gap when tabs bar is hidden --- android/CHANGELOG.md | 4 ++++ .../java/ru/daemonlord/messenger/ui/chats/ChatListScreen.kt | 5 ++++- .../ru/daemonlord/messenger/ui/navigation/AppNavGraph.kt | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/android/CHANGELOG.md b/android/CHANGELOG.md index 40f0830..0709c03 100644 --- a/android/CHANGELOG.md +++ b/android/CHANGELOG.md @@ -505,3 +505,7 @@ - removed extra outer paddings that shifted headers down/right on some pages, - separated content padding from top app bar container. - Result: consistent title baseline and horizontal alignment between main pages. + +### Step 81 - Chats bottom gap fix when tabs bar hidden +- Fixed blank gap at the bottom of chats list when global tabs bar auto-hides on scroll. +- Chats screen bottom padding is now dynamic and applied only while tabs bar is visible. diff --git a/android/app/src/main/java/ru/daemonlord/messenger/ui/chats/ChatListScreen.kt b/android/app/src/main/java/ru/daemonlord/messenger/ui/chats/ChatListScreen.kt index 10bbbac..ce364ec 100644 --- a/android/app/src/main/java/ru/daemonlord/messenger/ui/chats/ChatListScreen.kt +++ b/android/app/src/main/java/ru/daemonlord/messenger/ui/chats/ChatListScreen.kt @@ -67,6 +67,7 @@ fun ChatListRoute( onOpenChat: (Long) -> Unit, inviteToken: String?, onInviteTokenConsumed: () -> Unit, + isMainBarVisible: Boolean, onMainBarVisibilityChanged: (Boolean) -> Unit, viewModel: ChatListViewModel = hiltViewModel(), ) { @@ -90,6 +91,7 @@ fun ChatListRoute( onGlobalSearchChanged = viewModel::onGlobalSearchChanged, onRefresh = viewModel::onPullToRefresh, onOpenChat = onOpenChat, + isMainBarVisible = isMainBarVisible, onMainBarVisibilityChanged = onMainBarVisibilityChanged, onCreateGroup = viewModel::createGroup, onCreateChannel = viewModel::createChannel, @@ -116,6 +118,7 @@ fun ChatListScreen( onGlobalSearchChanged: (String) -> Unit, onRefresh: () -> Unit, onOpenChat: (Long) -> Unit, + isMainBarVisible: Boolean, onMainBarVisibilityChanged: (Boolean) -> Unit, onCreateGroup: (String, List) -> Unit, onCreateChannel: (String, String, String?) -> Unit, @@ -172,7 +175,7 @@ fun ChatListScreen( modifier = Modifier .fillMaxSize() .then(if (isTabletLayout) Modifier.widthIn(max = 820.dp) else Modifier) - .padding(bottom = 92.dp), + .padding(bottom = if (isMainBarVisible) 92.dp else 0.dp), ) { TopAppBar( title = { Text("Chats") }, diff --git a/android/app/src/main/java/ru/daemonlord/messenger/ui/navigation/AppNavGraph.kt b/android/app/src/main/java/ru/daemonlord/messenger/ui/navigation/AppNavGraph.kt index f59d7ad..cb6cf88 100644 --- a/android/app/src/main/java/ru/daemonlord/messenger/ui/navigation/AppNavGraph.kt +++ b/android/app/src/main/java/ru/daemonlord/messenger/ui/navigation/AppNavGraph.kt @@ -228,6 +228,7 @@ fun MessengerNavHost( onOpenChat = { chatId -> navController.navigate("${Routes.Chat}/$chatId") }, + isMainBarVisible = isMainBarVisible, onMainBarVisibilityChanged = { isMainBarVisible = it }, ) }