diff --git a/stream-chat-android-compose/api/stream-chat-android-compose.api b/stream-chat-android-compose/api/stream-chat-android-compose.api index 53776634784..2efa3dab7b9 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -814,8 +814,10 @@ public final class io/getstream/chat/android/compose/ui/channel/info/ComposableS public final class io/getstream/chat/android/compose/ui/channel/info/ComposableSingletons$DirectChannelInfoScreenKt { public static final field INSTANCE Lio/getstream/chat/android/compose/ui/channel/info/ComposableSingletons$DirectChannelInfoScreenKt; public fun ()V + public final fun getLambda$-1460320525$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; public final fun getLambda$-663281631$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; public final fun getLambda$1098276523$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$2061160744$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; public final fun getLambda$621085431$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; } @@ -3921,13 +3923,16 @@ public final class io/getstream/chat/android/compose/ui/theme/CustomAttachmentCo public final class io/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams { public static final field $stable I - public fun (Lio/getstream/chat/android/models/User;)V + public fun (Lio/getstream/chat/android/models/User;Z)V + public synthetic fun (Lio/getstream/chat/android/models/User;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lio/getstream/chat/android/models/User; - public final fun copy (Lio/getstream/chat/android/models/User;)Lio/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams; - public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams;Lio/getstream/chat/android/models/User;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams; + public final fun component2 ()Z + public final fun copy (Lio/getstream/chat/android/models/User;Z)Lio/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams; + public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams;Lio/getstream/chat/android/models/User;ZILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/DirectChannelInfoAvatarContainerParams; public fun equals (Ljava/lang/Object;)Z public final fun getUser ()Lio/getstream/chat/android/models/User; public fun hashCode ()I + public final fun isMuted ()Z public fun toString ()Ljava/lang/String; } @@ -4012,17 +4017,20 @@ public final class io/getstream/chat/android/compose/ui/theme/GroupChannelInfoAd public final class io/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams { public static final field $stable I - public fun (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;)V + public fun (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;Z)V + public synthetic fun (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lio/getstream/chat/android/models/Channel; public final fun component2 ()Lio/getstream/chat/android/models/User; public final fun component3 ()Lio/getstream/chat/android/ui/common/utils/ExpandableList; - public final fun copy (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;)Lio/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams; - public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams;Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams; + public final fun component4 ()Z + public final fun copy (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;Z)Lio/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams; + public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams;Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/utils/ExpandableList;ZILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/GroupChannelInfoAvatarContainerParams; public fun equals (Ljava/lang/Object;)Z public final fun getChannel ()Lio/getstream/chat/android/models/Channel; public final fun getCurrentUser ()Lio/getstream/chat/android/models/User; public final fun getMembers ()Lio/getstream/chat/android/ui/common/utils/ExpandableList; public fun hashCode ()I + public final fun isMuted ()Z public fun toString ()Ljava/lang/String; } diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/ChannelInfoScreenDefaults.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/ChannelInfoScreenDefaults.kt index 7b28c234dc1..6560e7f00c9 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/ChannelInfoScreenDefaults.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/ChannelInfoScreenDefaults.kt @@ -16,10 +16,21 @@ package io.getstream.chat.android.compose.ui.channel.info +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextOverflow import io.getstream.chat.android.compose.R import io.getstream.chat.android.compose.ui.components.BackButton +import io.getstream.chat.android.compose.ui.theme.ChatTheme +import io.getstream.chat.android.compose.ui.theme.StreamTokens @Composable internal fun ChannelInfoNavigationIcon(onClick: () -> Unit) { @@ -28,3 +39,43 @@ internal fun ChannelInfoNavigationIcon(onClick: () -> Unit) { onBackPressed = onClick, ) } + +/** + * Renders the channel/contact name heading on the channel info screen, with a trailing + * mute icon when the chat is muted. + * + * @param title The channel name (group) or contact name (direct message) to display. + * @param isMuted Whether the chat is muted. When true, a mute icon is shown after the title. + * @param modifier The [Modifier] to be applied to this title. + */ +@Composable +internal fun ChannelInfoTitle( + title: String, + isMuted: Boolean, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy( + space = StreamTokens.spacingXs, + alignment = Alignment.CenterHorizontally, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + modifier = Modifier.weight(weight = 1f, fill = false), + text = title, + style = ChatTheme.typography.headingLarge, + color = ChatTheme.colors.textPrimary, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + if (isMuted) { + Icon( + painter = painterResource(id = R.drawable.stream_design_ic_mute), + contentDescription = stringResource(R.string.stream_compose_channel_item_muted), + tint = ChatTheme.colors.textPrimary, + ) + } + } +} diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoScreen.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoScreen.kt index 4b8511132b4..be7eff3a8cf 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoScreen.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoScreen.kt @@ -224,7 +224,10 @@ private fun DirectChannelInfoContent( item { content.members.firstOrNull()?.user?.let { user -> ChatTheme.componentFactory.DirectChannelInfoAvatarContainer( - params = DirectChannelInfoAvatarContainerParams(user = user), + params = DirectChannelInfoAvatarContainerParams( + user = user, + isMuted = content.isMuted, + ), ) } } @@ -263,7 +266,7 @@ private fun DirectChannelInfoContent( } @Composable -internal fun DirectChannelInfoAvatarContainer(user: User) { +internal fun DirectChannelInfoAvatarContainer(user: User, isMuted: Boolean) { Column( modifier = Modifier.padding(bottom = StreamTokens.spacingMd), horizontalAlignment = Alignment.CenterHorizontally, @@ -277,14 +280,11 @@ internal fun DirectChannelInfoAvatarContainer(user: User) { ), ) Spacer(modifier = Modifier.height(StreamTokens.spacingMd)) - Text( - text = user.name.takeIf(String::isNotBlank) ?: user.id, - style = ChatTheme.typography.headingLarge, - color = ChatTheme.colors.textPrimary, - maxLines = 1, - overflow = TextOverflow.Ellipsis, + ChannelInfoTitle( + title = user.name.takeIf(String::isNotBlank) ?: user.id, + isMuted = isMuted, ) - Spacer(modifier = Modifier.height(StreamTokens.spacingXs)) + Spacer(modifier = Modifier.height(StreamTokens.spacing2xs)) Text( text = user.getLastSeenText(LocalContext.current), style = ChatTheme.typography.captionDefault, @@ -342,8 +342,27 @@ private fun DirectChannelInfoContentPreview() { } } +@Preview +@Composable +private fun DirectChannelInfoChannelMutedContentPreview() { + ChatTheme { + DirectChannelInfoContent(isChannelMuted = true) + } +} + +@Preview +@Composable +private fun DirectChannelInfoChannelUserMutedContentPreview() { + ChatTheme { + DirectChannelInfoContent(isUserMuted = true) + } +} + @Composable -internal fun DirectChannelInfoContent() { +internal fun DirectChannelInfoContent( + isChannelMuted: Boolean = false, + isUserMuted: Boolean = false, +) { val member = Member(user = PreviewUserData.user1.copy(lastActive = Date())) DirectChannelInfoScaffold( modifier = Modifier.fillMaxSize(), @@ -361,8 +380,8 @@ internal fun DirectChannelInfoContent() { ChannelInfoViewState.Content.Option.PinnedMessages, ChannelInfoViewState.Content.Option.MediaAttachments, ChannelInfoViewState.Content.Option.FilesAttachments, - ChannelInfoViewState.Content.Option.MuteChannel(isMuted = false), - ChannelInfoViewState.Content.Option.MuteUser(isMuted = false), + ChannelInfoViewState.Content.Option.MuteChannel(isMuted = isChannelMuted), + ChannelInfoViewState.Content.Option.MuteUser(isMuted = isUserMuted), ChannelInfoViewState.Content.Option.BlockUser(isBlocked = false), ChannelInfoViewState.Content.Option.DeleteChannel, ), diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt index 4a4f67df612..d6f7580c485 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt @@ -317,6 +317,7 @@ private fun GroupChannelInfoContent( channel = header.channel, currentUser = header.currentUser, members = content.members, + isMuted = content.isMuted, ), ) } @@ -381,6 +382,7 @@ internal fun GroupChannelInfoAvatarContainer( channel: Channel, currentUser: User?, members: ExpandableList, + isMuted: Boolean, ) { val totalMembers = members.size + members.collapsedCount val onlineCount = channel.members.count { it.user.online } @@ -397,14 +399,11 @@ internal fun GroupChannelInfoAvatarContainer( ), ) Spacer(modifier = Modifier.height(StreamTokens.spacingMd)) - Text( - text = ChatTheme.channelNameFormatter.formatChannelName(channel, currentUser), - style = ChatTheme.typography.headingLarge, - color = ChatTheme.colors.textPrimary, - maxLines = 1, - overflow = TextOverflow.Ellipsis, + ChannelInfoTitle( + title = ChatTheme.channelNameFormatter.formatChannelName(channel, currentUser), + isMuted = isMuted, ) - Spacer(modifier = Modifier.height(StreamTokens.spacingXs)) + Spacer(modifier = Modifier.height(StreamTokens.spacing2xs)) Text( text = stringResource( UiCommonR.string.stream_ui_channel_info_member_count_online, diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt index 8fc033c0ed5..576a82154be 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt @@ -2680,6 +2680,7 @@ public interface ChatComponentFactory { public fun DirectChannelInfoAvatarContainer(params: DirectChannelInfoAvatarContainerParams) { io.getstream.chat.android.compose.ui.channel.info.DirectChannelInfoAvatarContainer( user = params.user, + isMuted = params.isMuted, ) } @@ -2694,6 +2695,7 @@ public interface ChatComponentFactory { channel = params.channel, currentUser = params.currentUser, members = params.members, + isMuted = params.isMuted, ) } diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt index 7f6c59b291a..5d11bab0af3 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt @@ -1984,9 +1984,11 @@ public data class DirectChannelInfoTopBarParams( * Parameters for [ChatComponentFactory.DirectChannelInfoAvatarContainer]. * * @param user The user whose avatar is displayed. + * @param isMuted Whether the chat is muted. When true, a mute icon is shown after the name. */ public data class DirectChannelInfoAvatarContainerParams( val user: User, + val isMuted: Boolean = false, ) /** @@ -1995,11 +1997,13 @@ public data class DirectChannelInfoAvatarContainerParams( * @param channel The channel to display the avatar for. * @param currentUser The currently logged in user. * @param members The members list of the channel. + * @param isMuted Whether the channel is muted. When true, a mute icon is shown after the name. */ public data class GroupChannelInfoAvatarContainerParams( val channel: Channel, val currentUser: User?, val members: ExpandableList, + val isMuted: Boolean = false, ) /** diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoContentTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoContentTest.kt index 1bdc53c24f7..71b81ab2be1 100644 --- a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoContentTest.kt +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/DirectChannelInfoContentTest.kt @@ -54,4 +54,32 @@ internal class DirectChannelInfoContentTest : PaparazziComposeTest { DirectChannelInfoContent() } } + + @Test + fun `channel muted content`() { + snapshot { + DirectChannelInfoContent(isChannelMuted = true) + } + } + + @Test + fun `channel muted content in dark mode`() { + snapshot(isInDarkMode = true) { + DirectChannelInfoContent(isChannelMuted = true) + } + } + + @Test + fun `user muted content`() { + snapshot { + DirectChannelInfoContent(isUserMuted = true) + } + } + + @Test + fun `user muted content in dark mode`() { + snapshot(isInDarkMode = true) { + DirectChannelInfoContent(isUserMuted = true) + } + } } diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_channel_muted_content.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_channel_muted_content.png new file mode 100644 index 00000000000..b69a5bb816b Binary files /dev/null and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_channel_muted_content.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_channel_muted_content_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_channel_muted_content_in_dark_mode.png new file mode 100644 index 00000000000..8f43f2ffd7a Binary files /dev/null and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_channel_muted_content_in_dark_mode.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content.png index 9e375bd36d5..50e842ab9bc 100644 Binary files a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content.png and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content_in_dark_mode.png index 5e77900492f..577523acbb5 100644 Binary files a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content_in_dark_mode.png and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_content_in_dark_mode.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_user_muted_content.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_user_muted_content.png new file mode 100644 index 00000000000..0892b259f49 Binary files /dev/null and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_user_muted_content.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_user_muted_content_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_user_muted_content_in_dark_mode.png new file mode 100644 index 00000000000..43fb38d69bb Binary files /dev/null and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_DirectChannelInfoContentTest_user_muted_content_in_dark_mode.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members.png index 598e3a330a0..629130b4b84 100644 Binary files a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members.png and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members_in_dark_mode.png index 07f3dc88b56..45c77d9bc24 100644 Binary files a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members_in_dark_mode.png and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_collapsed_members_in_dark_mode.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members.png index 96f7b62603a..9f67bd5d960 100644 Binary files a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members.png and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members.png differ diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members_in_dark_mode.png index c35fed69649..e3e12cce060 100644 Binary files a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members_in_dark_mode.png and b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_GroupChannelInfoContentTest_expanded_members_in_dark_mode.png differ diff --git a/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api b/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api index 16e4335c299..2cbac92cab8 100644 --- a/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api +++ b/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api @@ -1607,6 +1607,7 @@ public final class io/getstream/chat/android/ui/common/state/channel/info/Channe public final fun getOptions ()Ljava/util/List; public final fun getOwner ()Lio/getstream/chat/android/models/User; public fun hashCode ()I + public final fun isMuted ()Z public fun toString ()Ljava/lang/String; } diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/ChannelInfoViewState.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/ChannelInfoViewState.kt index 3e44d1f9caa..123f488ab0b 100644 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/ChannelInfoViewState.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/ChannelInfoViewState.kt @@ -47,6 +47,16 @@ public sealed interface ChannelInfoViewState { val options: List