fix(android): hide nav under command palette

This commit is contained in:
Ayaan Zaidi
2026-06-03 16:54:32 +05:30
parent 4f8740029a
commit e5e6cf04a2
2 changed files with 13 additions and 1 deletions

View File

@@ -103,6 +103,8 @@ private val shellNavTabs = listOf(Tab.Overview, Tab.Chat, Tab.Voice, Tab.Setting
private val shellContentInsets: WindowInsets
@Composable get() = WindowInsets.safeDrawing.only(WindowInsetsSides.Top + WindowInsetsSides.Horizontal)
internal fun shellBottomNavVisible(keyboardVisible: Boolean, commandOpen: Boolean): Boolean = !keyboardVisible && !commandOpen
/** Main post-onboarding shell that owns top-level Android navigation state. */
@Composable
fun ShellScreen(
@@ -150,13 +152,14 @@ fun ShellScreen(
val density = LocalDensity.current
val keyboardVisible = WindowInsets.ime.getBottom(density) > 0
val showBottomNav = shellBottomNavVisible(keyboardVisible = keyboardVisible, commandOpen = commandOpen)
Scaffold(
modifier = modifier.fillMaxSize(),
containerColor = ClawTheme.colors.canvas,
contentWindowInsets = WindowInsets(0, 0, 0, 0),
bottomBar = {
if (!keyboardVisible) {
if (showBottomNav) {
ClawBottomNav(
items = shellNavTabs.map { ClawNavItem(key = it.key, label = it.label, icon = it.icon) },
selectedKey = if (activeTab in shellNavTabs) activeTab.key else Tab.Overview.key,

View File

@@ -5,9 +5,18 @@ import ai.openclaw.app.GatewayChannelsSummary
import ai.openclaw.app.GatewayNodesDevicesSummary
import ai.openclaw.app.GatewayPendingDeviceSummary
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test
class ShellScreenLogicTest {
@Test
fun bottomNavHidesForKeyboardAndCommandPalette() {
assertTrue(shellBottomNavVisible(keyboardVisible = false, commandOpen = false))
assertFalse(shellBottomNavVisible(keyboardVisible = true, commandOpen = false))
assertFalse(shellBottomNavVisible(keyboardVisible = false, commandOpen = true))
}
@Test
fun homeAttentionRowsSurfaceGatewayWhenDisconnected() {
val rows =