-
public final class ChatClientThe ChatClient is the main entry point for all low-level operations on chat
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public final classChatClient.Builderpublic classChatClient.Companion
-
Field Summary
Fields Modifier and Type Field Description private final ChatNotificationHandlernotificationHandlerprivate final List<Function1<User, Unit>>disconnectListenersprivate final List<Function1<User, Unit>>preSetUserListenersprivate final ChatClientConfigconfig
-
Method Summary
Modifier and Type Method Description final ChatNotificationHandlergetNotificationHandler()final List<Function1<User, Unit>>getDisconnectListeners()final List<Function1<User, Unit>>getPreSetUserListeners()final ChatClientConfiggetConfig()final UnitsetUser(User user, String token, InitConnectionListener listener)Initializes ChatClient for a specific user using the given user token. final UnitsetUser(User user, TokenProvider tokenProvider, InitConnectionListener listener)Initializes ChatClient for a specific user. final Call<ConnectionData>connectUser(User user, String token)Initializes ChatClient for a specific user using the given user token. final Call<ConnectionData>connectUser(User user, TokenProvider tokenProvider)Initializes ChatClient for a specific user. final UnitsetAnonymousUser(InitConnectionListener listener)final Call<ConnectionData>connectAnonymousUser()final UnitsetGuestUser(String userId, String username, InitConnectionListener listener)final Call<ConnectionData>connectGuestUser(String userId, String username)final Call<GuestUser>getGuestToken(String userId, String userName)final Call<String>sendFile(String channelType, String channelId, File file, ProgressCallback callback)final Call<String>sendImage(String channelType, String channelId, File file, ProgressCallback callback)final Call<List<Member>>queryMembers(String channelType, String channelId, Integer offset, Integer limit, FilterObject filter, QuerySort<Member> sort, List<Member> members)final Call<Unit>deleteFile(String channelType, String channelId, String url)final Call<Unit>deleteImage(String channelType, String channelId, String url)final Call<List<Reaction>>getReactions(String messageId, Integer offset, Integer limit)final Call<Reaction>sendReaction(String messageId, String reactionType, Boolean enforceUnique)final Call<Reaction>sendReaction(Reaction reaction, Boolean enforceUnique)final Call<Message>deleteReaction(String messageId, String reactionType)final UnitdisconnectSocket()final UnitreconnectSocket()final UnitaddSocketListener(SocketListener listener)final UnitremoveSocketListener(SocketListener listener)final ChatObservableevents()final Disposablesubscribe(Function1<ChatEvent, Unit> listener)final Disposablesubscribe(ChatEventListener<ChatEvent> listener)final DisposablesubscribeFor(String eventTypes, Function1<ChatEvent, Unit> listener)Subscribes to the specific eventTypes of the client. final DisposablesubscribeFor(String eventTypes, ChatEventListener<ChatEvent> listener)Subscribes to the specific eventTypes of the client. final DisposablesubscribeFor(LifecycleOwner lifecycleOwner, String eventTypes, Function1<ChatEvent, Unit> listener)Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner. final DisposablesubscribeFor(LifecycleOwner lifecycleOwner, String eventTypes, ChatEventListener<ChatEvent> listener)Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner. final DisposablesubscribeFor(Class<out ChatEvent> eventTypes, Function1<ChatEvent, Unit> listener)Subscribes to the specific eventTypes of the client. final DisposablesubscribeFor(Class<out ChatEvent> eventTypes, ChatEventListener<ChatEvent> listener)Subscribes to the specific eventTypes of the client. final DisposablesubscribeFor(LifecycleOwner lifecycleOwner, Class<out ChatEvent> eventTypes, Function1<ChatEvent, Unit> listener)Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner. final DisposablesubscribeFor(LifecycleOwner lifecycleOwner, Class<out ChatEvent> eventTypes, ChatEventListener<ChatEvent> listener)Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner. final DisposablesubscribeForSingle(String eventType, Function1<ChatEvent, Unit> listener)Subscribes for the next event with the given eventType. final DisposablesubscribeForSingle(String eventType, ChatEventListener<ChatEvent> listener)Subscribes for the next event with the given eventType. final <T extends ChatEvent> DisposablesubscribeForSingle(Class<T> eventType, Function1<T, Unit> listener)Subscribes for the next event with the given eventType. final <T extends ChatEvent> DisposablesubscribeForSingle(Class<T> eventType, ChatEventListener<T> listener)Subscribes for the next event with the given eventType. final Unitdisconnect()final Call<List<Device>>getDevices()final Call<Unit>deleteDevice(String deviceId)final Call<Unit>addDevice(String deviceId)final Call<List<Message>>searchMessages(SearchMessagesRequest request)final Call<List<Attachment>>getFileAttachments(String channelType, String channelId, Integer offset, Integer limit)final Call<List<Attachment>>getImageAttachments(String channelType, String channelId, Integer offset, Integer limit)final Call<List<Message>>getMessagesWithAttachments(String channelType, String channelId, Integer offset, Integer limit, String type)Returns a Call<List<Message>> With messages which contain at least one desired type attachment but not necessarily all of them will have a specified type final Call<List<Message>>getReplies(String messageId, Integer limit)final Call<List<Message>>getRepliesMore(String messageId, String firstId, Integer limit)final Call<Message>sendAction(SendActionRequest request)final Call<Message>deleteMessage(String messageId)final Call<Message>getMessage(String messageId)final Call<Message>sendMessage(String channelType, String channelId, Message message)final Call<Message>updateMessage(Message message)final Call<Message>pinMessage(Message message, Date expirationDate)final Call<Message>pinMessage(Message message, Integer timeout)final Call<Message>unpinMessage(Message message)final Call<Channel>queryChannel(String channelType, String channelId, QueryChannelRequest request)final Call<List<Channel>>queryChannels(QueryChannelsRequest request)final Call<Channel>deleteChannel(String channelType, String channelId)final Call<Unit>markMessageRead(String channelType, String channelId, String messageId)final Call<Unit>showChannel(String channelType, String channelId)final Call<Unit>hideChannel(String channelType, String channelId, Boolean clearHistory)final Call<Unit>stopWatching(String channelType, String channelId)final Call<Channel>updateChannel(String channelType, String channelId, Message updateMessage, Map<String, Object> channelExtraData)final Call<Channel>enableSlowMode(String channelType, String channelId, Integer cooldownTimeInSeconds)final Call<Channel>disableSlowMode(String channelType, String channelId)final Call<Channel>rejectInvite(String channelType, String channelId)final Call<ChatEvent>sendEvent(String eventType, String channelType, String channelId, Map<Object, Object> extraData)final StringgetVersion()final Call<Channel>acceptInvite(String channelType, String channelId, String message)final Call<Unit>markAllRead()final Call<Unit>markRead(String channelType, String channelId)final Call<List<User>>updateUsers(List<User> users)final Call<User>updateUser(User user)final Call<List<User>>queryUsers(QueryUsersRequest query)final Call<Channel>addMembers(String channelType, String channelId, List<String> members)final Call<Channel>removeMembers(String channelType, String channelId, List<String> members)final Call<Mute>muteUser(String userId)final Call<Unit>muteChannel(String channelType, String channelId)final Call<Unit>unMuteChannel(String channelType, String channelId)final Call<Unit>unmuteUser(String userId)final Call<Unit>unmuteCurrentUser()final Call<Mute>muteCurrentUser()final Call<Flag>flag(String userId)final Call<Flag>flagUser(String userId)final Call<Flag>flagMessage(String messageId)final Call<Message>translate(String messageId, String language)final Call<Unit>banUser(String targetId, String channelType, String channelId, String reason, Integer timeout)final Call<Unit>unBanUser(String targetId, String channelType, String channelId)final Call<Unit>shadowBanUser(String targetId, String channelType, String channelId, String reason, Integer timeout)final Call<Unit>removeShadowBan(String targetId, String channelType, String channelId)final UnitonMessageReceived(RemoteMessage remoteMessage)final UnitonNewTokenReceived(String token)final StringgetConnectionId()final UsergetCurrentUser()final StringgetCurrentToken()final BooleanisSocketConnected()final ChannelClientchannel(String channelType, String channelId)Returns a ChannelClient for given type and id final ChannelClientchannel(String cid)Returns a ChannelClient for given cid final Call<Channel>createChannel(String channelType, String channelId, Map<String, Object> extraData)final Call<Channel>createChannel(String channelType, String channelId, List<String> members)final Call<Channel>createChannel(String channelType, List<String> members)final Call<Channel>createChannel(String channelType, List<String> members, Map<String, Object> extraData)final Call<Channel>createChannel(String channelType, String channelId, List<String> members, Map<String, Object> extraData)final Call<List<ChatEvent>>getSyncHistory(List<String> channelsIds, Date lastSyncAt)final StringdevToken(String userId)-
-
Method Detail
-
getNotificationHandler
final ChatNotificationHandler getNotificationHandler()
-
getDisconnectListeners
final List<Function1<User, Unit>> getDisconnectListeners()
-
getPreSetUserListeners
final List<Function1<User, Unit>> getPreSetUserListeners()
-
getConfig
final ChatClientConfig getConfig()
-
setUser
@Deprecated(message = Use connectUser instead, replaceWith = @ReplaceWith(imports = {}, expression = this.connectUser(user, token).enqueue { result -> TODO("Handle result") }))) final Unit setUser(User user, String token, InitConnectionListener listener)
Initializes ChatClient for a specific user using the given user token.
-
setUser
@Deprecated(message = Use connectUser instead, replaceWith = @ReplaceWith(imports = {}, expression = this.connectUser(user, tokenProvider).enqueue { result -> TODO("Handle result") }))) final Unit setUser(User user, TokenProvider tokenProvider, InitConnectionListener listener)
Initializes ChatClient for a specific user. The tokenProvider implementation is used for the initial token, and it's also invoked whenever the user's token has expired, to fetch a new token.
This method performs required operations before connecting with the Stream API. Moreover, it warms up the connection, sets up notifications, and connects to the socket. You can use listener to get updates about socket connection.
- Parameters:
user- the user to settokenProvider- a TokenProvider implementationlistener- socket connection listener
-
connectUser
@CheckResult() final Call<ConnectionData> connectUser(User user, String token)
Initializes ChatClient for a specific user using the given user token.
-
connectUser
@CheckResult() final Call<ConnectionData> connectUser(User user, TokenProvider tokenProvider)
Initializes ChatClient for a specific user. The tokenProvider implementation is used for the initial token, and it's also invoked whenever the user's token has expired, to fetch a new token.
This method performs required operations before connecting with the Stream API. Moreover, it warms up the connection, sets up notifications, and connects to the socket. You can use listener to get updates about socket connection.
- Parameters:
user- the user to settokenProvider- a TokenProvider implementation
-
setAnonymousUser
@Deprecated(message = Use connectAnonymousUser instead, replaceWith = @ReplaceWith(imports = {}, expression = this.connectAnonymousUser().enqueue { result -> TODO("Handle result") }))) final Unit setAnonymousUser(InitConnectionListener listener)
-
connectAnonymousUser
@CheckResult() final Call<ConnectionData> connectAnonymousUser()
-
setGuestUser
@Deprecated(message = Use connectGuestUser instead, replaceWith = @ReplaceWith(imports = {}, expression = this.connectGuestUser(userId, username).enqueue { result -> TODO("Handle result") }))) final Unit setGuestUser(String userId, String username, InitConnectionListener listener)
-
connectGuestUser
@CheckResult() final Call<ConnectionData> connectGuestUser(String userId, String username)
-
getGuestToken
@CheckResult() final Call<GuestUser> getGuestToken(String userId, String userName)
-
sendFile
@CheckResult() final Call<String> sendFile(String channelType, String channelId, File file, ProgressCallback callback)
-
sendImage
@CheckResult() final Call<String> sendImage(String channelType, String channelId, File file, ProgressCallback callback)
-
queryMembers
@CheckResult() final Call<List<Member>> queryMembers(String channelType, String channelId, Integer offset, Integer limit, FilterObject filter, QuerySort<Member> sort, List<Member> members)
-
deleteFile
@CheckResult() final Call<Unit> deleteFile(String channelType, String channelId, String url)
-
deleteImage
@CheckResult() final Call<Unit> deleteImage(String channelType, String channelId, String url)
-
getReactions
@CheckResult() final Call<List<Reaction>> getReactions(String messageId, Integer offset, Integer limit)
-
sendReaction
@CheckResult()@JvmOverloads() final Call<Reaction> sendReaction(String messageId, String reactionType, Boolean enforceUnique)
-
sendReaction
@CheckResult()@JvmOverloads() final Call<Reaction> sendReaction(Reaction reaction, Boolean enforceUnique)
-
deleteReaction
@CheckResult() final Call<Message> deleteReaction(String messageId, String reactionType)
-
disconnectSocket
final Unit disconnectSocket()
-
reconnectSocket
final Unit reconnectSocket()
-
addSocketListener
final Unit addSocketListener(SocketListener listener)
-
removeSocketListener
final Unit removeSocketListener(SocketListener listener)
-
events
@Deprecated(message = Use subscribe() on the client directly instead) final ChatObservable events()
-
subscribe
@Deprecated(message = Use subscribe with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final Disposable subscribe(Function1<ChatEvent, Unit> listener)
-
subscribe
final Disposable subscribe(ChatEventListener<ChatEvent> listener)
-
subscribeFor
@Deprecated(message = Use subscribeFor with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final Disposable subscribeFor(String eventTypes, Function1<ChatEvent, Unit> listener)
Subscribes to the specific eventTypes of the client.
-
subscribeFor
final Disposable subscribeFor(String eventTypes, ChatEventListener<ChatEvent> listener)
Subscribes to the specific eventTypes of the client.
-
subscribeFor
@Deprecated(message = Use subscribeFor with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final Disposable subscribeFor(LifecycleOwner lifecycleOwner, String eventTypes, Function1<ChatEvent, Unit> listener)
Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner.
Only receives events when the lifecycle is in a STARTED state, otherwise events are dropped.
-
subscribeFor
final Disposable subscribeFor(LifecycleOwner lifecycleOwner, String eventTypes, ChatEventListener<ChatEvent> listener)
Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner.
Only receives events when the lifecycle is in a STARTED state, otherwise events are dropped.
-
subscribeFor
@Deprecated(message = Use subscribeFor with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final Disposable subscribeFor(Class<out ChatEvent> eventTypes, Function1<ChatEvent, Unit> listener)
Subscribes to the specific eventTypes of the client.
-
subscribeFor
final Disposable subscribeFor(Class<out ChatEvent> eventTypes, ChatEventListener<ChatEvent> listener)
Subscribes to the specific eventTypes of the client.
-
subscribeFor
@Deprecated(message = Use subscribeFor with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final Disposable subscribeFor(LifecycleOwner lifecycleOwner, Class<out ChatEvent> eventTypes, Function1<ChatEvent, Unit> listener)
Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner.
Only receives events when the lifecycle is in a STARTED state, otherwise events are dropped.
-
subscribeFor
final Disposable subscribeFor(LifecycleOwner lifecycleOwner, Class<out ChatEvent> eventTypes, ChatEventListener<ChatEvent> listener)
Subscribes to the specific eventTypes of the client, in the lifecycle of lifecycleOwner.
Only receives events when the lifecycle is in a STARTED state, otherwise events are dropped.
-
subscribeForSingle
@Deprecated(message = Use subscribeForSingle with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final Disposable subscribeForSingle(String eventType, Function1<ChatEvent, Unit> listener)
Subscribes for the next event with the given eventType.
-
subscribeForSingle
final Disposable subscribeForSingle(String eventType, ChatEventListener<ChatEvent> listener)
Subscribes for the next event with the given eventType.
-
subscribeForSingle
@Deprecated(message = Use subscribeForSingle with ChatEventListener parameter)@SinceKotlin(version = 99999.9) final <T extends ChatEvent> Disposable subscribeForSingle(Class<T> eventType, Function1<T, Unit> listener)
Subscribes for the next event with the given eventType.
-
subscribeForSingle
final <T extends ChatEvent> Disposable subscribeForSingle(Class<T> eventType, ChatEventListener<T> listener)
Subscribes for the next event with the given eventType.
-
disconnect
final Unit disconnect()
-
getDevices
@CheckResult() final Call<List<Device>> getDevices()
-
deleteDevice
@CheckResult() final Call<Unit> deleteDevice(String deviceId)
-
addDevice
@CheckResult() final Call<Unit> addDevice(String deviceId)
-
searchMessages
@CheckResult() final Call<List<Message>> searchMessages(SearchMessagesRequest request)
-
getFileAttachments
@CheckResult() final Call<List<Attachment>> getFileAttachments(String channelType, String channelId, Integer offset, Integer limit)
-
getImageAttachments
@CheckResult() final Call<List<Attachment>> getImageAttachments(String channelType, String channelId, Integer offset, Integer limit)
-
getMessagesWithAttachments
@CheckResult() final Call<List<Message>> getMessagesWithAttachments(String channelType, String channelId, Integer offset, Integer limit, String type)
Returns a Call<List<Message>> With messages which contain at least one desired type attachment but not necessarily all of them will have a specified type
- Parameters:
channelType- the channel type.channelId- the channel id.offset- The messages offsetlimit- max limit messages to be fetchedtype- The desired type attachment
-
getReplies
@CheckResult() final Call<List<Message>> getReplies(String messageId, Integer limit)
-
getRepliesMore
@CheckResult() final Call<List<Message>> getRepliesMore(String messageId, String firstId, Integer limit)
-
sendAction
@CheckResult() final Call<Message> sendAction(SendActionRequest request)
-
deleteMessage
@CheckResult() final Call<Message> deleteMessage(String messageId)
-
getMessage
@CheckResult() final Call<Message> getMessage(String messageId)
-
sendMessage
@CheckResult() final Call<Message> sendMessage(String channelType, String channelId, Message message)
-
updateMessage
@CheckResult() final Call<Message> updateMessage(Message message)
-
pinMessage
@CheckResult() final Call<Message> pinMessage(Message message, Date expirationDate)
-
pinMessage
@CheckResult() final Call<Message> pinMessage(Message message, Integer timeout)
-
unpinMessage
@CheckResult() final Call<Message> unpinMessage(Message message)
-
queryChannel
@CheckResult() final Call<Channel> queryChannel(String channelType, String channelId, QueryChannelRequest request)
-
queryChannels
@CheckResult() final Call<List<Channel>> queryChannels(QueryChannelsRequest request)
-
deleteChannel
@CheckResult() final Call<Channel> deleteChannel(String channelType, String channelId)
-
markMessageRead
@CheckResult() final Call<Unit> markMessageRead(String channelType, String channelId, String messageId)
-
showChannel
@CheckResult() final Call<Unit> showChannel(String channelType, String channelId)
-
hideChannel
@CheckResult() final Call<Unit> hideChannel(String channelType, String channelId, Boolean clearHistory)
-
stopWatching
@CheckResult() final Call<Unit> stopWatching(String channelType, String channelId)
-
updateChannel
@CheckResult() final Call<Channel> updateChannel(String channelType, String channelId, Message updateMessage, Map<String, Object> channelExtraData)
-
enableSlowMode
@CheckResult() final Call<Channel> enableSlowMode(String channelType, String channelId, Integer cooldownTimeInSeconds)
-
disableSlowMode
@CheckResult() final Call<Channel> disableSlowMode(String channelType, String channelId)
-
rejectInvite
@CheckResult() final Call<Channel> rejectInvite(String channelType, String channelId)
-
sendEvent
@CheckResult() final Call<ChatEvent> sendEvent(String eventType, String channelType, String channelId, Map<Object, Object> extraData)
-
getVersion
final String getVersion()
-
acceptInvite
@CheckResult() final Call<Channel> acceptInvite(String channelType, String channelId, String message)
-
markAllRead
@CheckResult() final Call<Unit> markAllRead()
-
markRead
@CheckResult() final Call<Unit> markRead(String channelType, String channelId)
-
updateUsers
@CheckResult() final Call<List<User>> updateUsers(List<User> users)
-
updateUser
@CheckResult() final Call<User> updateUser(User user)
-
queryUsers
@CheckResult() final Call<List<User>> queryUsers(QueryUsersRequest query)
-
addMembers
@CheckResult() final Call<Channel> addMembers(String channelType, String channelId, List<String> members)
-
removeMembers
@CheckResult() final Call<Channel> removeMembers(String channelType, String channelId, List<String> members)
-
muteUser
@CheckResult() final Call<Mute> muteUser(String userId)
-
muteChannel
@CheckResult() final Call<Unit> muteChannel(String channelType, String channelId)
-
unMuteChannel
@CheckResult() final Call<Unit> unMuteChannel(String channelType, String channelId)
-
unmuteUser
@CheckResult() final Call<Unit> unmuteUser(String userId)
-
unmuteCurrentUser
@CheckResult() final Call<Unit> unmuteCurrentUser()
-
muteCurrentUser
@CheckResult() final Call<Mute> muteCurrentUser()
-
flag
@CheckResult()@Deprecated(message = We are going to replace with flagUser(), replaceWith = @ReplaceWith(imports = {}, expression = this.flagUser(userId))) final Call<Flag> flag(String userId)
-
flagUser
@CheckResult() final Call<Flag> flagUser(String userId)
-
flagMessage
@CheckResult() final Call<Flag> flagMessage(String messageId)
-
translate
@CheckResult() final Call<Message> translate(String messageId, String language)
-
banUser
@CheckResult() final Call<Unit> banUser(String targetId, String channelType, String channelId, String reason, Integer timeout)
-
unBanUser
@CheckResult() final Call<Unit> unBanUser(String targetId, String channelType, String channelId)
-
shadowBanUser
@CheckResult() final Call<Unit> shadowBanUser(String targetId, String channelType, String channelId, String reason, Integer timeout)
-
removeShadowBan
@CheckResult() final Call<Unit> removeShadowBan(String targetId, String channelType, String channelId)
-
onMessageReceived
final Unit onMessageReceived(RemoteMessage remoteMessage)
-
onNewTokenReceived
final Unit onNewTokenReceived(String token)
-
getConnectionId
final String getConnectionId()
-
getCurrentUser
final User getCurrentUser()
-
getCurrentToken
final String getCurrentToken()
-
isSocketConnected
final Boolean isSocketConnected()
-
channel
final ChannelClient channel(String channelType, String channelId)
Returns a ChannelClient for given type and id
- Parameters:
channelType- the channel type.channelId- the channel id.
-
channel
final ChannelClient channel(String cid)
Returns a ChannelClient for given cid
- Parameters:
cid- the full channel id.
-
createChannel
@CheckResult() final Call<Channel> createChannel(String channelType, String channelId, Map<String, Object> extraData)
-
createChannel
@CheckResult() final Call<Channel> createChannel(String channelType, String channelId, List<String> members)
-
createChannel
@CheckResult() final Call<Channel> createChannel(String channelType, List<String> members)
-
createChannel
@CheckResult() final Call<Channel> createChannel(String channelType, List<String> members, Map<String, Object> extraData)
-
createChannel
@CheckResult() final Call<Channel> createChannel(String channelType, String channelId, List<String> members, Map<String, Object> extraData)
-
getSyncHistory
@CheckResult() final Call<List<ChatEvent>> getSyncHistory(List<String> channelsIds, Date lastSyncAt)
-
-
-
-