Fix insets in several screens (#7285)

* Fix insets in several screens

UI components in the room list, room member list, etc. now have better insets based on `WindowInsets.safeDrawing`

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
Jorge Martin Espinosa
2026-07-28 10:29:42 +02:00
committed by GitHub
parent c685c356ce
commit adc1b50492
16 changed files with 89 additions and 34 deletions
@@ -11,9 +11,13 @@ package io.element.android.features.startchat.impl.components
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.plus
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@@ -28,6 +32,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.ListSectionHeader
import io.element.android.libraries.designsystem.utils.lazyColumnContentPadding
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.components.CheckableUserRow
import io.element.android.libraries.matrix.ui.components.CheckableUserRowData
@@ -47,8 +52,10 @@ fun UserListView(
Column(
modifier = modifier,
) {
val contentPaddingValues = WindowInsets.safeDrawing.only(WindowInsetsSides.Horizontal).asPaddingValues()
SearchUserBar(
modifier = Modifier.fillMaxWidth(),
modifier = Modifier.fillMaxWidth()
.padding(contentPaddingValues),
queryState = state.searchQuery,
resultState = state.searchResults,
selectedUsers = state.selectedUsers,
@@ -69,7 +76,7 @@ fun UserListView(
if (state.isMultiSelectionEnabled && !state.isSearchActive && state.selectedUsers.isNotEmpty()) {
SelectedUsersRowList(
contentPadding = PaddingValues(16.dp),
contentPadding = contentPaddingValues + PaddingValues(16.dp),
selectedUsers = state.selectedUsers,
autoScroll = true,
onUserRemove = {
@@ -80,7 +87,7 @@ fun UserListView(
}
if (!state.isSearchActive && state.recentDirectRooms.isNotEmpty()) {
LazyColumn(
contentPadding = WindowInsets.navigationBars.asPaddingValues(),
contentPadding = lazyColumnContentPadding,
) {
item {
ListSectionHeader(
@@ -45,6 +45,7 @@ import io.element.android.libraries.designsystem.theme.components.ListSectionHea
import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TopAppBar
import io.element.android.libraries.designsystem.utils.lazyColumnContentPadding
import io.element.android.libraries.designsystem.utils.scaffoldScrollableContentInsets
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.ui.components.CreateDmConfirmationBottomSheet
@@ -170,7 +171,9 @@ private fun CreateRoomActionButtonsList(
onRoomDirectorySearchClick: () -> Unit,
onDmClick: (RoomId) -> Unit,
) {
LazyColumn {
LazyColumn(
contentPadding = lazyColumnContentPadding,
) {
item {
CreateRoomActionButton(
iconRes = CompoundDrawables.ic_compound_plus,