From 20916be8cc0373adbd1b5cc99626e4e2d597cb59 Mon Sep 17 00:00:00 2001 From: talwayh1 <225305016+talwayh1@users.noreply.github.com> Date: Sat, 5 Sep 2026 19:29:56 +0800 Subject: [PATCH] fix: add navigationBarsPadding to bottom input areas The app calls enableEdgeToEdge() in MainActivity, so content extends behind the system bars. The prompt composer on SessionDetailScreen and the agent editor on AgentDetailScreen only applied imePadding(), which handles the software keyboard but not the system navigation bar. On devices with gesture navigation or 3-button nav (e.g. Xiaomi/MIUI), the bottom composer is partially hidden behind the virtual navigation bar, making the input field and send button hard to reach. Fix by chaining navigationBarsPadding() after imePadding() on both bottom-anchored containers: - SessionDetailScreen: composer Column in the Scaffold bottomBar - AgentDetailScreen: root editor Column Keyboard behavior is preserved: when the IME is open the navigation bar insets are already consumed by the keyboard, so navigationBarsPadding() adds nothing extra. --- .../codeg/android/feature/sessiondetail/SessionDetailScreen.kt | 3 ++- .../app/codeg/android/feature/settings/AgentDetailScreen.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/codeg/android/feature/sessiondetail/SessionDetailScreen.kt b/app/src/main/java/app/codeg/android/feature/sessiondetail/SessionDetailScreen.kt index d3df5dd..dcbb47c 100644 --- a/app/src/main/java/app/codeg/android/feature/sessiondetail/SessionDetailScreen.kt +++ b/app/src/main/java/app/codeg/android/feature/sessiondetail/SessionDetailScreen.kt @@ -24,6 +24,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.imePadding +import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn @@ -222,7 +223,7 @@ fun SessionDetailScreen( ) }, bottomBar = { - Column(Modifier.imePadding()) { + Column(Modifier.imePadding().navigationBarsPadding()) { ui.pendingPermission?.let { p -> PermissionRequestCard( parsed = p.parsed, diff --git a/app/src/main/java/app/codeg/android/feature/settings/AgentDetailScreen.kt b/app/src/main/java/app/codeg/android/feature/settings/AgentDetailScreen.kt index 5cdd3f7..ca4fbb8 100644 --- a/app/src/main/java/app/codeg/android/feature/settings/AgentDetailScreen.kt +++ b/app/src/main/java/app/codeg/android/feature/settings/AgentDetailScreen.kt @@ -115,7 +115,7 @@ fun AgentDetailContent( // — like Hermes' raw editor, they hide the host "Save" and the generic // native-config editor. val selfContained = agentType == AgentType.KIMI_CODE || agentType == AgentType.PI - Column(Modifier.fillMaxSize().imePadding()) { + Column(Modifier.fillMaxSize().imePadding().navigationBarsPadding()) { Column( Modifier.weight(1f).fillMaxWidth().verticalScroll(rememberScrollState()) .padding(horizontal = 16.dp, vertical = 12.dp),