(extensions in package io.getstream.chat.android.livedata)
The channel config repository stores all channel configs in room as well as in memory
Call channelConfigRepository.load to load all configs into memory
The Channel Controller exposes convenient livedata objects to build your chat interface
It automatically handles the incoming events and keeps users, messages, reactions, channel information up to date automatically
Offline storage is also handled using Room
A class that only stores the channel data and not all the other channel state
Using this prevents code bugs and issues caused by confusing the channel data vs the full channel object
ChannelStateEntity stores both the channel information as well as references
to all of the channel's state
Efficiently store the channel user read info
The ChatDomain is the main entry point for all livedata & offline operations on chat
The Chat Repository exposes livedata objects to make it easier to build your chat UI.
It intercepts the various low level events to ensure data stays in sync.
Offline storage is handled using Room
(extensions in package io.getstream.chat.android.livedata)
(extensions in package io.getstream.chat.android.livedata)
Extend the ChatNotificationConfig to start the sync worker when receiving new messages
This ensures that offline storage is up to date as soon as you open the app
Used as a wrapper for data that is exposed via a LiveData that represents an event.
An Observer for Events, simplifying the pattern of checking if the Event's content has
already been handled.
Efficiently store the member data
(extensions in package io.getstream.chat.android.livedata)
The Message Entity. Text and attachments are the most commonly used fields.
The QueryChannelsController is a small helper to show a list of channels
Paginate query channels on the queryChannels repo
Similar to QueryChannelsRequest but without the watch, filter and sort params
Since those are provided by the QueryChannelsRepo
QuerySort can be null so we need to handle that here
The ReactionEntity
We don't do any caching on reactions since usage is infrequent
When creating a channel, adding a reaction or sending any temporary error will trigger the retry policy
The retry policy interface exposes 2 methods
The threadController exposes livedata for a thread
The UserEntity, id is a required field
All other fields are optional and can be null