Channel List Component — Display Conversations in Android
Use ChannelListFragment or ChannelListView to display and manage the user’s conversation list. Learn embedding, click listeners, and style customization.
Use this file to discover all available pages before exploring further.
The Channel List component renders the signed-in user’s full conversation list — direct messages, groups, and broadcast channels — with real-time updates, unread counts, pin indicators, mute badges, and delivery status icons. You can drop it into any screen as a self-contained ChannelListFragment, or embed only the raw ChannelListView inside your own layout when you need tighter control over the surrounding UI.
ChannelListFragment is the simplest path. Add it once and the component manages its own ChannelsViewModel, connection-status banner, global-search launcher, and new-channel FAB.
1
Add the Fragment in XML
Declare a FragmentContainerView in your Activity layout and commit ChannelListFragment into it.
Handles the actions available from the long-press popup (pin, mute, mark as read, leave, delete):
channelListView.setCustomChannelPopupClickListener(object : ChannelPopupClickListenersImpl() { override fun onPinClick(channel: SceytChannel) { // called when the user taps "Pin" in the popup super.onPinClick(channel) } override fun onMuteClick(channel: SceytChannel) { // called when the user taps "Mute" super.onMuteClick(channel) } override fun onLeaveChannelClick(channel: SceytChannel) { // called when the user taps "Leave" super.onLeaveChannelClick(channel) }})
Calling super on any ChannelPopupClickListeners method fires the default command (e.g., pin, mute) through the ViewModel. Skip super if you want to replace the default entirely.
Appearance is controlled by two cooperating style objects: ChannelListViewStyle (controls the list container) and ChannelItemStyle (controls individual rows).
ChannelItemStyle covers every visual aspect of a channel row: avatar, subject text, last-message preview, date, unread badge, delivery icons, pin and mute indicators, and more.
When the user taps a channel row, the default implementation navigates via Destination.Channel:
// What ChannelListView does internally on channel click:SceytChatUIKit.navigator.navigate( context, Destination.Channel(channel))
This opens ChannelActivity — the full-screen message thread. To redirect taps to a custom activity, override onChannelClick in a ChannelClickListeners implementation and call Destination.Channel.navigate(context) with your own subclass, or use SceytChatUIKit.navigator to resolve a custom destination.