Use icon for Spaces and update label and navigation bar design and behavior.

This commit is contained in:
Benoit Marty
2025-07-07 13:39:03 +02:00
committed by Benoit Marty
parent 0dec35b838
commit 08d55b7fde
4 changed files with 19 additions and 12 deletions

View File

@@ -16,18 +16,18 @@ enum class HomeNavigationBarItem(
val labelRes: Int,
) {
Chats(
labelRes = R.string.screen_roomlist_main_space_title
labelRes = R.string.screen_home_tab_chats
),
Spaces(
// TODO Create a new entry in Localazy
labelRes = R.string.screen_roomlist_main_space_title
labelRes = R.string.screen_home_tab_spaces
);
@Composable
fun icon() = when (this) {
Chats -> CompoundIcons.ChatSolid()
// TODO Spaces -> CompoundIcons.Workspace()
Spaces -> CompoundIcons.Code()
fun icon(
isSelected: Boolean,
) = when (this) {
Chats -> if (isSelected) CompoundIcons.ChatSolid() else CompoundIcons.Chat()
Spaces -> if (isSelected) CompoundIcons.WorkspaceSolid() else CompoundIcons.Workspace()
}
companion object {

View File

@@ -56,7 +56,9 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.FloatingActionButton
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.NavigationBar
import io.element.android.libraries.designsystem.theme.components.NavigationBarIcon
import io.element.android.libraries.designsystem.theme.components.NavigationBarItem
import io.element.android.libraries.designsystem.theme.components.NavigationBarText
import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarHost
@@ -192,19 +194,21 @@ private fun HomeScaffold(
)
) {
HomeNavigationBarItem.entries.forEach { item ->
val isSelected = state.currentHomeNavigationBarItem == item
NavigationBarItem(
selected = state.currentHomeNavigationBarItem == item,
selected = isSelected,
onClick = {
state.eventSink(HomeEvents.SelectHomeNavigationBarItem(item))
},
icon = {
Icon(
imageVector = item.icon(),
contentDescription = null
NavigationBarIcon(
imageVector = item.icon(isSelected),
)
},
label = {
Text(stringResource(item.labelRes))
NavigationBarText(
text = stringResource(item.labelRes),
)
}
)
}

View File

@@ -12,6 +12,8 @@
<string name="confirm_recovery_key_banner_title">"Your key storage is out of sync"</string>
<string name="full_screen_intent_banner_message">"To ensure you never miss an important call, please change your settings to allow full-screen notifications when your phone is locked."</string>
<string name="full_screen_intent_banner_title">"Enhance your call experience"</string>
<string name="screen_home_tab_chats">"Chats"</string>
<string name="screen_home_tab_spaces">"Spaces"</string>
<string name="screen_invites_decline_chat_message">"Are you sure you want to decline the invitation to join %1$s?"</string>
<string name="screen_invites_decline_chat_title">"Decline invite"</string>
<string name="screen_invites_decline_direct_chat_message">"Are you sure you want to decline this private chat with %1$s?"</string>

View File

@@ -164,6 +164,7 @@
{
"name" : ":features:home:impl",
"includeRegex" : [
"screen\\.home\\..*",
"screen_roomlist_.*",
"screen\\.roomlist\\..*",
"session_verification_banner_.*",