Merge pull request #7409 from element-hq/feature/bma/fixes

UI fixes
This commit is contained in:
Benoit Marty
2026-08-12 12:13:32 +02:00
committed by GitHub
3 changed files with 57 additions and 17 deletions
@@ -8,6 +8,7 @@
package io.element.android.features.preferences.impl.root package io.element.android.features.preferences.impl.root
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.BoxScope
@@ -337,7 +338,9 @@ private fun ColumnScope.GeneralSection(
) )
} }
// Put developer settings at the end, so nothing bad happens if the user clicks 8 times to enable the entry // Put developer settings at the end, so nothing bad happens if the user clicks 8 times to enable the entry
if (state.showDeveloperSettings) { AnimatedVisibility(
visible = state.showDeveloperSettings,
) {
DeveloperPreferencesView(onOpenDeveloperSettings) DeveloperPreferencesView(onOpenDeveloperSettings)
} }
} }
@@ -12,10 +12,15 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
@@ -112,7 +117,13 @@ fun AddRoomToSpaceView(
.consumeWindowInsets(paddingValues) .consumeWindowInsets(paddingValues)
) { ) {
SearchBar( SearchBar(
modifier = Modifier.fillMaxWidth(), modifier = Modifier
.fillMaxWidth()
.padding(
WindowInsets.safeDrawing
.only(WindowInsetsSides.Horizontal)
.asPaddingValues()
),
placeHolderTitle = stringResource(CommonStrings.action_search), placeHolderTitle = stringResource(CommonStrings.action_search),
queryState = state.searchQuery, queryState = state.searchQuery,
active = state.isSearchActive, active = state.isSearchActive,
@@ -147,23 +158,35 @@ fun AddRoomToSpaceView(
} }
if (!state.isSearchActive) { if (!state.isSearchActive) {
Spacer(modifier = Modifier.height(16.dp)) Column(
Text( modifier = Modifier
text = stringResource(R.string.screen_space_add_rooms_room_access_description), .fillMaxWidth()
color = ElementTheme.colors.textSecondary, .padding(
style = ElementTheme.typography.fontBodySmRegular, WindowInsets.safeDrawing
modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp) .only(WindowInsetsSides.Horizontal)
) .asPaddingValues()
if (state.selectedRooms.isNotEmpty()) { )
SelectedRoomsRow( ) {
selectedRooms = state.selectedRooms, Spacer(modifier = Modifier.height(16.dp))
onRemoveRoom = ::onRoomToggled, Text(
modifier = Modifier.padding(vertical = 16.dp) text = stringResource(R.string.screen_space_add_rooms_room_access_description),
color = ElementTheme.colors.textSecondary,
style = ElementTheme.typography.fontBodySmRegular,
modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp)
) )
if (state.selectedRooms.isNotEmpty()) {
SelectedRoomsRow(
selectedRooms = state.selectedRooms,
onRemoveRoom = ::onRoomToggled,
modifier = Modifier.padding(vertical = 16.dp)
)
}
} }
if (state.suggestions.isNotEmpty()) { if (state.suggestions.isNotEmpty()) {
LazyColumn { LazyColumn(
contentPadding = lazyColumnContentPadding,
) {
item { item {
ListSectionHeader( ListSectionHeader(
title = stringResource(id = CommonStrings.common_suggestions), title = stringResource(id = CommonStrings.common_suggestions),
@@ -15,11 +15,16 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
@@ -144,7 +149,13 @@ fun RoomSelectView(
.consumeWindowInsets(paddingValues) .consumeWindowInsets(paddingValues)
) { ) {
SearchBar( SearchBar(
modifier = Modifier.fillMaxWidth(), modifier = Modifier
.fillMaxWidth()
.padding(
WindowInsets.safeDrawing
.only(WindowInsetsSides.Horizontal)
.asPaddingValues()
),
placeHolderTitle = stringResource(CommonStrings.action_search), placeHolderTitle = stringResource(CommonStrings.action_search),
queryState = state.searchQuery, queryState = state.searchQuery,
active = state.isSearchActive, active = state.isSearchActive,
@@ -184,7 +195,10 @@ fun RoomSelectView(
showVerticalSpace = true, showVerticalSpace = true,
) )
if (state.resultState is SearchBarResultState.Results) { if (state.resultState is SearchBarResultState.Results) {
LazyColumn(state = lazyListState) { LazyColumn(
state = lazyListState,
contentPadding = lazyColumnContentPadding,
) {
items(state.resultState.results, key = { it.roomId.value }) { roomSummary -> items(state.resultState.results, key = { it.roomId.value }) { roomSummary ->
Column { Column {
RoomSummaryView( RoomSummaryView(