Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/sceyt/sceyt-chat-android-uikit/llms.txt

Use this file to discover all available pages before exploring further.

SceytChatUIKitConfig is the central configuration object for the Sceyt Chat Android UIKit. It is accessible via SceytChatUIKit.config and should be configured before calling connect(). All properties use sensible defaults so only the fields you need to override must be specified. Sub-configuration objects (such as QueryLimits and PresenceConfig) are lazily initialised, meaning they are created on first access and can be replaced wholesale or mutated in place. Package: com.sceyt.chatuikit.config
SceytChatUIKit.config.apply {
    syncChannelsAfterConnect = true
    hardDeleteMessageForAll  = false
    messageReactionPerUserLimit = 4
    queryLimits = QueryLimits(messageListQueryLimit = 30)
}

Query Limits

queryLimits
QueryLimits
Controls the page sizes used in every list query. All fields are annotated @IntRange(1, 50).
SceytChatUIKit.config.queryLimits = QueryLimits(
    channelListQueryLimit        = 20,
    channelMemberListQueryLimit  = 30,
    userListQueryLimit           = 30,
    messageListQueryLimit        = 50,
    attachmentListQueryLimit     = 20,
    reactionListQueryLimit       = 30,
    unreadMentionsListQueryLimit = 30,
    votersListQueryLimit         = 30,
    mutualGroupsQueryLimit       = 10
)

Presence

presenceConfig
PresenceConfig
Defines the default presence state and status text sent to the server when the user connects.
SceytChatUIKit.config.presenceConfig = PresenceConfig(
    defaultPresenceState  = PresenceState.Online,
    defaultPresenceStatus = "Available"
)

Channel URI

channelURIConfig
ChannelURIConfig
Governs validation rules for public-channel URIs (handles/slugs).
SceytChatUIKit.config.channelURIConfig = ChannelURIConfig(
    prefix    = "@",
    minLength = 5,
    maxLength = 50,
    regex     = Regex("^[a-zA-Z0-9_]*\$")
)

Channel Types

channelTypesConfig
ChannelTypesConfig
Maps logical channel-type names to the string identifiers used in the Sceyt API.
SceytChatUIKit.config.channelTypesConfig = ChannelTypesConfig(
    direct    = "direct",
    group     = "group",
    broadcast = "broadcast"
)

Member Roles

memberRolesConfig
MemberRolesConfig
Maps logical role names to the string identifiers used in the Sceyt API.
SceytChatUIKit.config.memberRolesConfig = MemberRolesConfig(
    owner       = "owner",
    admin       = "admin",
    participant = "participant",
    subscriber  = "subscriber"
)

Push Notifications

notificationConfig
PushNotificationConfig
Controls push notification registration and display behaviour.
SceytChatUIKit.config.notificationConfig = PushNotificationConfig(
    isPushEnabled                = true,
    suppressWhenAppIsInForeground = true,
    shouldDisplayNotification    = { pushData -> true },
    pushProviders                = listOf(MyFcmProvider())
)

Voice Recorder

voiceRecorderConfig
VoiceRecorderConfig
Configures audio quality and duration limits for the built-in voice message recorder.
SceytChatUIKit.config.voiceRecorderConfig = VoiceRecorderConfig(
    maxDuration  = VoiceRecorderDuration.MaxDuration(5.minutes.inWholeMilliseconds),
    bitrate      = 32_000,
    simplingRate = 16_000
)

globalSearchConfig
GlobalSearchConfig
Tunes the behaviour of the global search screen.
SceytChatUIKit.config.globalSearchConfig.apply {
    userSuggestionsLimit  = 8
    searchInputDebounceMs = 300
    closeBehavior         = GlobalSearchCloseBehavior.OnMessageSent
}

Optional configuration for generating and parsing channel invite deep links. When null, invite-link features are disabled in the UI.
SceytChatUIKit.config.channelLinkDeepLinkConfig = ChannelInviteDeepLinkConfig(
    scheme     = "https",
    host       = "link.example.com",
    pathPrefix = "/join/"
)
// Produces: https://link.example.com/join/{inviteKey}

Sync and Message Behaviour

syncChannelsAfterConnect
Boolean
When true, SceytSyncManager automatically synchronises channel and message data after each successful connection. Default: true.
hardDeleteMessageForAll
Boolean
When true, deleting a message performs a hard delete for all participants rather than a soft/local delete. Default: false.
messageEditTimeout
Long
Maximum window in milliseconds after sending a message during which it can be edited. Default: 2 hours (7_200_000 ms).
SceytChatUIKit.config.messageEditTimeout = 1.hours.inWholeMilliseconds
preventDuplicateAttachmentUpload
Boolean
When true, the SDK checks a file checksum before uploading to avoid uploading the same file twice. Default: true.

Media Resizing

avatarResizeConfig
ResizeConfig
Resize settings applied to avatar images before upload. Default: ResizeConfig.Low (720 px, 80% quality).
SceytChatUIKit.config.avatarResizeConfig = ResizeConfig.Medium // 1080 px, 80%
imageAttachmentResizeConfig
ResizeConfig
Resize settings applied to image attachments before upload. Default: ResizeConfig.Medium (1080 px, 80% quality).
PresetDimension thresholdQuality
Low720 px80 %
Medium1080 px80 %
High1600 px90 %
videoAttachmentResizeConfig
VideoResizeConfig
Resize settings applied to video attachments before upload. Default: VideoResizeConfig.Medium (1200 px, 80% quality, 30 fps, 1 Mbps bitrate).
PresetThresholdQualityFPSBitrate
Low800 px80 %30500 kbps
Medium1200 px80 %301000 kbps
High1600 px80 %302000 kbps

Channel List and UI Preferences

channelListOrder
ChannelListOrder
Sort order for the channel list. Uses ChannelListQuery.ChannelListOrder from the Sceyt Chat SDK. Default: ListQueryChannelOrderLastMessage.
defaultReactions
List<String>
The emoji list shown in the quick-reaction strip on messages. Default: ["😎", "😂", "👌", "😍", "👍", "😏"].
SceytChatUIKit.config.defaultReactions = listOf("❤️", "👍", "😂", "😮", "😢", "🙏")
mentionTriggerPrefix
Char
The character that triggers the member-mention suggestion dropdown in the message input. Default: '@'.

Notification and Auto-Delete Options

muteChannelNotificationOptions
MuteNotificationOptions
A fun interface that returns a list of IntervalOption items shown in the mute-notifications picker (e.g. “1 hour”, “8 hours”, “Forever”). Defaults to DefaultMuteNotificationOptions.
SceytChatUIKit.config.muteChannelNotificationOptions = MuteNotificationOptions { context ->
    listOf(
        IntervalOption(context.getString(R.string.mute_1h),   3_600_000L),
        IntervalOption(context.getString(R.string.mute_forever), Long.MAX_VALUE)
    )
}
messageAutoDeleteOptions
AutoDeleteMessagesOptions
A fun interface that returns a list of IntervalOption items for the auto-delete timer picker. Defaults to DefaultAutoDeleteMessagesOptions.

Avatar Colors

defaultAvatarBackgroundColors
AvatarBackgroundColors
A fun interface that returns a list of Int color values used as backgrounds for generated (initials-based) avatars. Defaults to DefaultAvatarBackgroundColors.
SceytChatUIKit.config.defaultAvatarBackgroundColors = AvatarBackgroundColors { context ->
    listOf(
        ContextCompat.getColor(context, R.color.avatar_bg_1),
        ContextCompat.getColor(context, R.color.avatar_bg_2),
    )
}

Mutual Groups

mutualGroupChannelTypes
MutualGroupChannelTypes
A fun interface returning the list of channel type strings to include when fetching mutual groups between two users. Defaults to DefaultMutualGroupChannelTypes.

Limits and Constraints

messageReactionPerUserLimit
Int
Maximum number of distinct reactions a single user can add to one message. Annotated @IntRange(from = 1, to = 6). Default: 6.
messageMultiselectLimit
Int
Maximum number of messages that can be selected at once in multi-select mode. Annotated @IntRange(from = 1, to = 50). Default: 30.
attachmentSelectionLimit
Int
Maximum number of files or media items that can be selected in a single attachment-picker session. Annotated @IntRange(from = 1, to = 50). Default: 20.

Build docs developers (and LLMs) love