Skip to content

Commit 8657a15

Browse files
authored
Channel pinning: list indicator and sheet header icons (#6474)
* refactor(compose): move Pin to slot 2 in channel options sheet Aligns the DM action order with the channel-pinning redesign: View Info -> Pin/Unpin Chat -> Mute/Unmute User -> Block/Unblock User -> Archive/Unarchive Chat -> Delete Chat. Group order was already correct; only KDoc refreshed to reflect the actual default flow and the opt-in nature of Pin and Archive. * feat(compose): render muted/pinned icons in SelectedChannelMenu header The selected-channel menu header now renders inline mute and pin icons next to the channel name when the respective attribute is active, in a fixed name -> mute -> pin order matching the redesign. Adds defaulted isMuted/isPinned fields to ChannelMenuParams and ChannelMenuHeaderContentParams; ChannelsScreen composes the channel-mute OR DM-counterpart-user-mute signal inline using existing isChannelMuted/isUserMuted accessors. Extracts a small internal Channel.dmCounterpartId helper to remove a duplicate member-iteration that also appeared in buildDmChannelActions. Localizes stream_compose_channel_item_pinned across the seven supported locales. Enables isPinChannelVisible in the compose sample so the behaviour is reachable from the dogfooding app. The preview-vs-snapshot duplication for SelectedChannelMenu is removed via three internal content composables called by both the previews and the Paparazzi tests. * feat(compose): support pinned indicator on the channel list item Adds a PinIndicatorPosition enum mirroring MuteIndicatorPosition, plus a trailing pinIndicatorPosition field on ChannelListConfig so the pin icon can be placed inline with the channel name or at the trailing bottom of the preview row, independent of the mute icon position. The render order in TitleRow is name -> mute -> pin (matching the redesign) and the trailing branch in MessageRow renders mute before pin. The mute/pin icon rendering is extracted into MutedIcon/PinnedIcon helpers and the preview/snapshot config overrides now use CompositionLocalProvider(LocalChatUiConfig) to keep snapshotWithDarkMode's dark-mode flag intact across nested overrides. In the sample, channel pinning becomes a CustomSettings feature flag (isChannelPinningEnabled, default false) toggled from the Custom Login settings panel and consumed by both ChannelsActivity and ChatsActivity. Activities adopt the canonical settings field pattern via private val settings by lazy { customSettings() }. Snapshot baselines: five new ChannelItem tests (pinned only, pinned trailing, muted+pinned both inline, muted+pinned both trailing, mixed) and a refreshed muted_channel_trailing_bottom to fix a pre-existing dark-mode rendering bug exposed by the same nested-ChatTheme issue. Also folds in KDoc cleanup on the muted/pinned param docs added in the previous commit, removing implementation rationale per the engineering principles. * feat(compose-sample): sort pinned channels to top in the channel list Composes the existing last_updated sort with a leading desc("pinned_at") in both ChannelsActivity and ChatsActivity so pinned channels surface at the top of the channel list while unpinned channels keep their recent-activity ordering. Acts as the recipe integrators can mirror to enable pinned-first sorting without a SDK-default change. * refactor(compose): deprecate unused isMuted on buildDefaultChannelActions Adds a new public overload of buildDefaultChannelActions without the isMuted parameter and marks the previous five-arg overload @deprecated with a ReplaceWith quick-fix. The parameter was received but never read by either the DM or group action builders. ChannelsScreen, the sample ChannelsActivity, and the docs example are updated to call the new overload so the SDK does not dogfood the deprecated API. * refactor(compose): derive muted/pinned icon state inside the menu Drops the isMuted/isPinned params on ChannelMenuParams, ChannelMenuHeaderContentParams, and SelectedChannelMenu. The default header now derives the pinned state from selectedChannel.isPinned() and the muted state from currentUser.channelMutes (channel-level) and currentUser.mutes (DM-counterpart) via a private helper. ChannelsScreen reverts to its pre-PR shape — no OR computation, no flags on the params. Addresses the review concern that isMuted was ambiguous (channel vs. user mute) and that both flags duplicate state the menu already has via selectedChannel + currentUser. Net effect on the public API vs. develop is zero new fields on the params data classes for icon state.
1 parent 339cd7e commit 8657a15

34 files changed

Lines changed: 661 additions & 171 deletions

File tree

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/data/CustomSettings.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class CustomSettings(private val context: Context) {
3333

3434
var isAdaptiveLayoutEnabled: Boolean by booleanPref(AdaptiveLayout)
3535

36+
var isChannelPinningEnabled: Boolean by booleanPref(ChannelPinning)
3637
var isComposerLinkPreviewEnabled: Boolean by booleanPref(ComposerLinkPreview)
3738
var isComposerFloatingStyleEnabled: Boolean by booleanPref(ComposerFloatingStyle)
3839
var isSystemAttachmentPickerEnabled: Boolean by booleanPref(SystemAttachmentPicker)
@@ -48,6 +49,7 @@ class CustomSettings(private val context: Context) {
4849
}
4950

5051
private const val AdaptiveLayout = "adaptive_layout"
52+
private const val ChannelPinning = "channel_pinning"
5153
private const val ComposerLinkPreview = "composer_link_preview"
5254
private const val ComposerFloatingStyle = "composer_floating_style"
5355
private const val SystemAttachmentPicker = "system_attachment_picker"

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/list/ChannelsActivity.kt

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import io.getstream.chat.android.client.api.models.QueryThreadsRequest
6161
import io.getstream.chat.android.client.api.state.globalStateFlow
6262
import io.getstream.chat.android.compose.sample.ChatHelper
6363
import io.getstream.chat.android.compose.sample.R
64+
import io.getstream.chat.android.compose.sample.data.customSettings
6465
import io.getstream.chat.android.compose.sample.feature.channel.add.AddChannelActivity
6566
import io.getstream.chat.android.compose.sample.feature.channel.add.group.AddGroupChannelActivity
6667
import io.getstream.chat.android.compose.sample.feature.channel.isGroupChannel
@@ -81,12 +82,15 @@ import io.getstream.chat.android.compose.ui.channels.info.SelectedChannelMenu
8182
import io.getstream.chat.android.compose.ui.channels.list.ChannelItem
8283
import io.getstream.chat.android.compose.ui.channels.list.ChannelList
8384
import io.getstream.chat.android.compose.ui.components.SearchInput
85+
import io.getstream.chat.android.compose.ui.components.channels.ChannelOptionsVisibility
8486
import io.getstream.chat.android.compose.ui.components.channels.buildDefaultChannelActions
8587
import io.getstream.chat.android.compose.ui.mentions.MentionList
88+
import io.getstream.chat.android.compose.ui.theme.ChannelListConfig
8689
import io.getstream.chat.android.compose.ui.theme.ChannelListDividerItemParams
8790
import io.getstream.chat.android.compose.ui.theme.ChannelListItemContentParams
8891
import io.getstream.chat.android.compose.ui.theme.ChatComponentFactory
8992
import io.getstream.chat.android.compose.ui.theme.ChatTheme
93+
import io.getstream.chat.android.compose.ui.theme.ChatUiConfig
9094
import io.getstream.chat.android.compose.ui.threads.ThreadsScreen
9195
import io.getstream.chat.android.compose.viewmodel.channels.ChannelListViewModel
9296
import io.getstream.chat.android.compose.viewmodel.channels.ChannelListViewModelFactory
@@ -106,6 +110,8 @@ import kotlinx.coroutines.launch
106110
@OptIn(ExperimentalCoroutinesApi::class)
107111
class ChannelsActivity : ComponentActivity() {
108112

113+
private val settings by lazy { customSettings() }
114+
109115
/**
110116
* The provided predefined filter has the following specs:
111117
*
@@ -120,7 +126,7 @@ class ChannelsActivity : ComponentActivity() {
120126
*
121127
* **Sort:**
122128
* ```
123-
* QuerySortByField.descByName("last_updated")
129+
* QuerySortByField<Channel>().desc("pinned_at").desc("last_updated")
124130
* ```
125131
*/
126132
private val channelsViewModelFactory by lazy {
@@ -161,7 +167,15 @@ class ChannelsActivity : ComponentActivity() {
161167
val unreadChannelsCount by unreadChannelsCountFlow.collectAsStateWithLifecycle(0)
162168
val unreadThreadsCount by unreadThreadsCountFlow.collectAsStateWithLifecycle(0)
163169

164-
SampleChatTheme {
170+
SampleChatTheme(
171+
config = ChatUiConfig(
172+
channelList = ChannelListConfig(
173+
optionsVisibility = ChannelOptionsVisibility(
174+
isPinChannelVisible = settings.isChannelPinningEnabled,
175+
),
176+
),
177+
),
178+
) {
165179
val user by channelsViewModel.user.collectAsStateWithLifecycle()
166180
val drawerState = rememberDrawerState(DrawerValue.Closed)
167181
val coroutineScope = rememberCoroutineScope()
@@ -348,7 +362,6 @@ class ChannelsActivity : ComponentActivity() {
348362
if (selectedChannel != null) {
349363
val channelActions = buildDefaultChannelActions(
350364
selectedChannel = selectedChannel,
351-
isMuted = channelsViewModel.isChannelMuted(selectedChannel.cid),
352365
ownCapabilities = selectedChannel.ownCapabilities,
353366
viewModel = channelsViewModel,
354367
onViewInfoAction = ::viewChannelInfo,

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/chats/ChatsActivity.kt

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ import io.getstream.chat.android.client.api.state.globalStateFlow
5151
import io.getstream.chat.android.compose.sample.ChatHelper
5252
import io.getstream.chat.android.compose.sample.R
5353
import io.getstream.chat.android.compose.sample.data.customSettings
54-
import io.getstream.chat.android.compose.sample.feature.channel.ChannelConstants.CHANNEL_ARG_DRAFT
5554
import io.getstream.chat.android.compose.sample.feature.channel.add.AddChannelActivity
5655
import io.getstream.chat.android.compose.sample.feature.channel.isGroupChannel
5756
import io.getstream.chat.android.compose.sample.feature.channel.list.CustomChatEventHandlerFactory
@@ -92,9 +91,7 @@ import io.getstream.chat.android.compose.viewmodel.pinned.PinnedMessageListViewM
9291
import io.getstream.chat.android.compose.viewmodel.pinned.PinnedMessageListViewModelFactory
9392
import io.getstream.chat.android.models.AttachmentType
9493
import io.getstream.chat.android.models.Channel
95-
import io.getstream.chat.android.models.Filters
9694
import io.getstream.chat.android.models.Message
97-
import io.getstream.chat.android.models.querysort.QuerySortByField
9895
import io.getstream.chat.android.ui.common.feature.channel.attachments.ChannelAttachmentsViewEvent
9996
import io.getstream.chat.android.ui.common.feature.channel.info.ChannelInfoViewEvent
10097
import io.getstream.chat.android.ui.common.state.channel.info.ChannelInfoViewState
@@ -131,16 +128,34 @@ class ChatsActivity : ComponentActivity() {
131128
private val messageId by lazy { intent.getStringExtra(KEY_MESSAGE_ID) }
132129
private val parentMessageId by lazy { intent.getStringExtra(KEY_PARENT_MESSAGE_ID) }
133130

131+
private val settings by lazy { customSettings() }
132+
133+
/**
134+
* The provided predefined filter has the following specs:
135+
*
136+
* **Filter:**
137+
* ```
138+
* Filters.and(
139+
* Filters.eq("type", "messaging"),
140+
* Filters.`in`("members", listOf(currentUserId)),
141+
* Filters.or(Filters.notExists("draft"), Filters.eq("draft", false)),
142+
* )
143+
* ```
144+
*
145+
* **Sort:**
146+
* ```
147+
* QuerySortByField<Channel>().desc("pinned_at").desc("last_updated")
148+
* ```
149+
*/
134150
private val channelListViewModelFactory by lazy {
135151
val chatClient = ChatClient.instance()
136152
val currentUserId = chatClient.getCurrentUser()?.id ?: ""
137153
ChannelListViewModelFactory(
138154
chatClient = chatClient,
139-
querySort = QuerySortByField.descByName("last_updated"),
140-
filters = Filters.and(
141-
Filters.eq("type", "messaging"),
142-
Filters.`in`("members", listOf(currentUserId)),
143-
Filters.or(Filters.notExists(CHANNEL_ARG_DRAFT), Filters.eq(CHANNEL_ARG_DRAFT, false)),
155+
predefinedFilterName = "android_sample_filter",
156+
filterValues = mapOf(
157+
"channel_type" to "messaging",
158+
"user_id" to currentUserId,
144159
),
145160
chatEventHandlerFactory = CustomChatEventHandlerFactory(),
146161
)
@@ -165,6 +180,7 @@ class ChatsActivity : ComponentActivity() {
165180
channelList = ChannelListConfig(
166181
optionsVisibility = ChannelOptionsVisibility(
167182
isViewInfoVisible = AdaptiveLayoutInfo.singlePaneWindow(),
183+
isPinChannelVisible = settings.isChannelPinningEnabled,
168184
),
169185
),
170186
),
@@ -608,7 +624,7 @@ class ChatsActivity : ComponentActivity() {
608624
) = ChannelViewModelFactory(
609625
context = applicationContext,
610626
channelId = channelId,
611-
composerOptions = ComposerOptions(linkPreviewEnabled = customSettings().isComposerLinkPreviewEnabled),
627+
composerOptions = ComposerOptions(linkPreviewEnabled = settings.isComposerLinkPreviewEnabled),
612628
messageId = messageId,
613629
parentMessageId = parentMessageId,
614630
)

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/login/CustomLoginActivity.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ class CustomLoginActivity : AppCompatActivity() {
126126
var userTokenText by remember { mutableStateOf("") }
127127
var userNameText by remember { mutableStateOf("") }
128128
var isAdaptiveLayoutEnabled by remember { mutableStateOf(settings.isAdaptiveLayoutEnabled) }
129+
var isChannelPinningEnabled by remember {
130+
mutableStateOf(settings.isChannelPinningEnabled)
131+
}
129132
var isComposerLinkPreviewEnabled by remember {
130133
mutableStateOf(settings.isComposerLinkPreviewEnabled)
131134
}
@@ -150,6 +153,15 @@ class CustomLoginActivity : AppCompatActivity() {
150153
settings.isAdaptiveLayoutEnabled = it
151154
},
152155
),
156+
FeatureFlag(
157+
label = stringResource(R.string.custom_login_flag_channel_pinning_label),
158+
description = stringResource(R.string.custom_login_flag_channel_pinning_description),
159+
value = isChannelPinningEnabled,
160+
onValueChange = {
161+
isChannelPinningEnabled = it
162+
settings.isChannelPinningEnabled = it
163+
},
164+
),
153165
FeatureFlag(
154166
label = stringResource(R.string.custom_login_flag_composer_link_preview_label),
155167
description = stringResource(

stream-chat-android-compose-sample/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
<string name="custom_login_flag_composer_link_preview_description">Show link previews in the message composer</string>
4242
<string name="custom_login_flag_system_attachment_picker_label">System attachment picker</string>
4343
<string name="custom_login_flag_system_attachment_picker_description">Use the system\'s native file/media picker</string>
44+
<string name="custom_login_flag_channel_pinning_label">Channel pinning</string>
45+
<string name="custom_login_flag_channel_pinning_description">Show the Pin/Unpin Chat action in the channel options menu</string>
4446

4547
<!-- Pinned Messages -->
4648
<string name="pinned_messages_title">Pinned Messages</string>

stream-chat-android-compose/api/stream-chat-android-compose.api

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -881,6 +881,7 @@ public final class io/getstream/chat/android/compose/ui/channels/header/Composab
881881
public final class io/getstream/chat/android/compose/ui/channels/info/ComposableSingletons$SelectedChannelMenuKt {
882882
public static final field INSTANCE Lio/getstream/chat/android/compose/ui/channels/info/ComposableSingletons$SelectedChannelMenuKt;
883883
public fun <init> ()V
884+
public final fun getLambda$1458176636$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
884885
public final fun getLambda$1837108307$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
885886
public final fun getLambda$835101941$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
886887
}
@@ -902,14 +903,23 @@ public final class io/getstream/chat/android/compose/ui/channels/list/Composable
902903
public static final field INSTANCE Lio/getstream/chat/android/compose/ui/channels/list/ComposableSingletons$ChannelItemKt;
903904
public fun <init> ()V
904905
public final fun getLambda$-1095060318$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
906+
public final fun getLambda$-1232665624$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
907+
public final fun getLambda$-262212850$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
905908
public final fun getLambda$-781924446$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
909+
public final fun getLambda$-851243681$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
910+
public final fun getLambda$1003502438$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
911+
public final fun getLambda$112526037$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
912+
public final fun getLambda$1228594335$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
906913
public final fun getLambda$1334723625$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
907914
public final fun getLambda$1340453964$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
908915
public final fun getLambda$1561934893$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
916+
public final fun getLambda$1593816240$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
917+
public final fun getLambda$1946891593$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
909918
public final fun getLambda$2130050484$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
910919
public final fun getLambda$2144537814$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
911920
public final fun getLambda$230028639$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
912921
public final fun getLambda$468999837$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
922+
public final fun getLambda$481395312$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
913923
public final fun getLambda$633588870$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2;
914924
}
915925

@@ -1210,6 +1220,7 @@ public final class io/getstream/chat/android/compose/ui/components/channels/Chan
12101220

12111221
public final class io/getstream/chat/android/compose/ui/components/channels/ChannelOptionsKt {
12121222
public static final fun ChannelOptions (Ljava/util/List;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V
1223+
public static final fun buildDefaultChannelActions (Lio/getstream/chat/android/models/Channel;Ljava/util/Set;Lio/getstream/chat/android/compose/viewmodel/channels/ChannelListViewModel;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Ljava/util/List;
12131224
public static final fun buildDefaultChannelActions (Lio/getstream/chat/android/models/Channel;ZLjava/util/Set;Lio/getstream/chat/android/compose/viewmodel/channels/ChannelListViewModel;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Ljava/util/List;
12141225
}
12151226

@@ -2895,16 +2906,18 @@ public final class io/getstream/chat/android/compose/ui/theme/ChannelItemUnreadC
28952906
public final class io/getstream/chat/android/compose/ui/theme/ChannelListConfig {
28962907
public static final field $stable I
28972908
public fun <init> ()V
2898-
public fun <init> (Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;)V
2899-
public synthetic fun <init> (Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
2909+
public fun <init> (Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;)V
2910+
public synthetic fun <init> (Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
29002911
public final fun component1 ()Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;
2901-
public final fun component2 ()Z
2902-
public final fun component3 ()Lio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;
2903-
public final fun copy (Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;)Lio/getstream/chat/android/compose/ui/theme/ChannelListConfig;
2904-
public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/ChannelListConfig;Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/ChannelListConfig;
2912+
public final fun component2 ()Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;
2913+
public final fun component3 ()Z
2914+
public final fun component4 ()Lio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;
2915+
public final fun copy (Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;)Lio/getstream/chat/android/compose/ui/theme/ChannelListConfig;
2916+
public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/ChannelListConfig;Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;ZLio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/ChannelListConfig;
29052917
public fun equals (Ljava/lang/Object;)Z
29062918
public final fun getMuteIndicatorPosition ()Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;
29072919
public final fun getOptionsVisibility ()Lio/getstream/chat/android/compose/ui/components/channels/ChannelOptionsVisibility;
2920+
public final fun getPinIndicatorPosition ()Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;
29082921
public final fun getSwipeActionsEnabled ()Z
29092922
public fun hashCode ()I
29102923
public fun toString ()Ljava/lang/String;
@@ -5523,6 +5536,14 @@ public final class io/getstream/chat/android/compose/ui/theme/MuteIndicatorPosit
55235536
public static fun values ()[Lio/getstream/chat/android/compose/ui/theme/MuteIndicatorPosition;
55245537
}
55255538

5539+
public final class io/getstream/chat/android/compose/ui/theme/PinIndicatorPosition : java/lang/Enum {
5540+
public static final field InlineTitle Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;
5541+
public static final field TrailingBottom Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;
5542+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
5543+
public static fun valueOf (Ljava/lang/String;)Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;
5544+
public static fun values ()[Lio/getstream/chat/android/compose/ui/theme/PinIndicatorPosition;
5545+
}
5546+
55265547
public final class io/getstream/chat/android/compose/ui/theme/PinnedMessageListEmptyContentParams {
55275548
public static final field $stable I
55285549
public fun <init> ()V

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channels/ChannelsScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ public fun ChannelsScreen(
207207
val channel = lastChannel.value
208208
val channelActions = buildDefaultChannelActions(
209209
selectedChannel = channel,
210-
isMuted = listViewModel.isChannelMuted(channel.cid),
211210
ownCapabilities = channel.ownCapabilities,
212211
viewModel = listViewModel,
213212
onViewInfoAction = { ch ->

0 commit comments

Comments
 (0)