Was: io.getstream.chat.android.ui.common.ChatUIInitializer
Now: io.getstream.chat.android.ui.initializer.ChatUIInitializer
Was: io.getstream.chat.android.ui.gallery.AttachmentGalleryActivity
Now: io.getstream.chat.android.ui.feature.gallery.AttachmentGalleryActivity
Was: io.getstream.chat.android.ui.gallery.AttachmentMediaActivity
Now: io.getstream.chat.android.ui.feature.gallery.AttachmentMediaActivity
Was: io.getstream.chat.android.ui.gallery.AttachmentActivity
Now: io.getstream.chat.android.ui.feature.gallery.AttachmentActivity
Was: io.getstream.chat.android.ui.channel.ChannelListActivity
Now: io.getstream.chat.android.ui.feature.channels.ChannelListActivity
Was: io.getstream.chat.android.ui.message.MessageListActivity
Now: io.getstream.chat.android.ui.feature.messages.MessageListActivity
// UI Common
Was: com.getstream.sdk.chat.view.activity.AttachmentDocumentActivity
Now: io.getstream.chat.android.ui.common.feature.documents.AttachmentDocumentActivity
Package Restructure
Chat SDK V6 brings some package changes that need to be addressed in order to successfully complete the transition from v5
to v6
.
Android Manifest
First of all, let’s look at the AndroidManifest.xml
changes.
The following changes are required to be made in the AndroidManifest.xml
file in case you’ve used the Stream’s classes directly in your manifest:
View Components
Second of all, any XML layouts that were using the Stream’s classes directly should be updated to use the new package names along with imports in a codebase.
If you forget to update the XML layouts, you may get an error at compile time, something like this:
Type mismatch: inferred type is ChannelListView but
io.getstream.chat.android.ui.feature.channels.list.ChannelListView was expected
Alternatively it may crash at runtime with the error similar to this:
android.view.InflateException: Binary XML file line #58
in io.getstream.chat.ui.sample.debug:layout/fragment_channels:
Binary XML file line #58 in io.getstream.chat.ui.sample.debug:layout/fragment_channels:
Error inflating class io.getstream.chat.android.ui.search.list.SearchResultListView
Here you can find elaborated examples of the changes that are required to be made:
Was: io.getstream.chat.android.ui.avatar.UserAvatarView
Now: io.getstream.chat.android.ui.widgets.avatar.UserAvatarView
Was: io.getstream.chat.android.ui.avatar.ChannelAvatarView
Now: io.getstream.chat.android.ui.widgets.avatar.ChannelAvatarView
Was: io.getstream.chat.android.ui.channel.list.header.ChannelListHeaderView
Now: io.getstream.chat.android.ui.feature.channels.header.ChannelListHeaderView
Was: io.getstream.chat.android.ui.channel.list.ChannelListView
Now: io.getstream.chat.android.ui.feature.channels.list.ChannelListView
Was: io.getstream.chat.android.ui.message.list.header.MessageListHeaderView
Now: io.getstream.chat.android.ui.feature.messages.list.header.MessageListHeaderView
Was: io.getstream.chat.android.ui.message.list.MessageListView
Now: io.getstream.chat.android.ui.feature.messages.list.MessageListView
Was: io.getstream.chat.android.ui.message.composer.MessageComposerView
Now: io.getstream.chat.android.ui.feature.messages.composer.MessageComposerView
Was: io.getstream.chat.android.ui.pinned.list.PinnedMessageListView
Now: io.getstream.chat.android.ui.feature.pinned.list.PinnedMessageListView
Was: io.getstream.chat.android.ui.search.SearchInputView
Now: io.getstream.chat.android.ui.feature.search.SearchInputView
Was: io.getstream.chat.android.ui.search.list.SearchResultListView
Now: io.getstream.chat.android.ui.feature.search.list.SearchResultListView
Was: io.getstream.chat.android.ui.gallery.overview.MediaAttachmentGridView
Now: io.getstream.chat.android.ui.feature.gallery.overview.MediaAttachmentGridView
Was: io.getstream.chat.android.ui.typing.TypingIndicatorView
Now: io.getstream.chat.android.ui.widgets.typing.TypingIndicatorView
Was: io.getstream.chat.android.ui.mention.list.MentionListView
Now: io.getstream.chat.android.ui.feature.mentions.list.MentionListView
Was: io.getstream.chat.android.ui.message.composer.content.DefaultMessageComposer*
Now: io.getstream.chat.android.ui.feature.messages.composer.content.DefaultMessageComposer*
ChatUI customization
Thirdly, you may need to update imports of Stream’s classes in case you’ve used them while customizing ChatUI
:
Was: io.getstream.chat.android.ui.common.navigation.ChatNavigator
Now: io.getstream.chat.android.ui.navigation.ChatNavigator
Was: com.getstream.sdk.chat.utils.DateFormatter
Now: io.getstream.chat.android.ui.common.helper.DateFormatter
Was: com.getstream.sdk.chat.images.ImageHeadersProvider
Now: io.getstream.chat.android.ui.common.helper.ImageHeadersProvider
Was: io.getstream.chat.android.ui.common.ChannelNameFormatter
Now: io.getstream.chat.android.ui.helper.ChannelNameFormatter
Was: io.getstream.chat.android.ui.message.composer.attachment.preview.**Now: io.getstream.chat.android.ui.feature.messages.composer.attachment.preview.**
Was: io.getstream.chat.android.ui.message.list.adapter.viewholder.attachment.*
Now: io.getstream.chat.android.ui.feature.messages.list.adapter.viewholder.attachment.*
Was: io.getstream.chat.android.ui.common.style.*
Now: io.getstream.chat.android.ui.font.*
Was: io.getstream.chat.android.ui.transformer.*
Now: io.getstream.chat.android.ui.helper.transformer.*
Was: io.getstream.chat.android.ui.*
Now: io.getstream.chat.android.ui.helper.*
TransformStyle Changes
ImageAttachmentViewStyle
was replaced by MediaAttachmentViewStyle
.
Next step could be updating imports related to any customizations you might’ve made using TransformStyle
:
Was: io.getstream.chat.android.ui.TransformStyle
Now: io.getstream.chat.android.ui.helper.TransformStyle
Was: io.getstream.chat.android.ui.StyleTransformer
Now: io.getstream.chat.android.ui.helper.StyleTransformer
Was: io.getstream.chat.android.ui.avatar.AvatarStyle
Now: io.getstream.chat.android.ui.widgets.avatar.AvatarStyle
Was: io.getstream.chat.android.ui.typing.TypingIndicatorViewStyle
Now: io.getstream.chat.android.ui.widgets.typing.TypingIndicatorViewStyle
Was: io.getstream.chat.android.ui.pinned.list.PinnedMessageListViewStyle
Now: io.getstream.chat.android.ui.feature.pinned.list.PinnedMessageListViewStyle
Was: io.getstream.chat.android.ui.gallery.options.AttachmentGalleryOptionsViewStyle
Now: io.getstream.chat.android.ui.feature.gallery.options.AttachmentGalleryOptionsViewStyle
Was: io.getstream.chat.android.ui.mention.list.MentionListViewStyle
Now: io.getstream.chat.android.ui.feature.mentions.list.MentionListViewStyle
Was: io.getstream.chat.android.ui.message.list.header.MessageListHeaderViewStyle
Now: io.getstream.chat.android.ui.feature.messages.header.MessageListHeaderViewStyle
Was: io.getstream.chat.android.ui.message.preview.MessagePreviewStyle
Now: io.getstream.chat.android.ui.feature.messages.preview.MessagePreviewStyle
Was: io.getstream.chat.android.ui.message.list.**.*Style
Now: io.getstream.chat.android.ui.feature.messages.list.**.*Style
Was: io.getstream.chat.android.ui.message.composer.**.*Style
Now: io.getstream.chat.android.ui.feature.messages.composer.**.*Style
Was: io.getstream.chat.android.ui.channel.list.*ViewStyle
Now: io.getstream.chat.android.ui.feature.channels.**.*ViewStyle
Was: io.getstream.chat.android.ui.search.**.*ViewStyle
Now: io.getstream.chat.android.ui.feature.search.**.*ViewStyle
ViewBinding Changes
In addition, view bindings’ packages were also updated.
If you appeared using Stream’s bindings such as MessageListViewModelBinding
, ChannelListViewModelBinding
and others, you’ll need to update related imports as well:
Was: io.getstream.chat.android.ui.message.composer.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.messages.bindView
Was: io.getstream.chat.android.ui.message.list.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.messages.bindView
Was: io.getstream.chat.android.ui.message.list.header.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.messages.bindView
Was: io.getstream.chat.android.ui.channel.list.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.channels.bindView
Was: io.getstream.chat.android.ui.search.list.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.search.bindView
Was: io.getstream.chat.android.ui.channel.list.header.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.channels.bindView
Was: io.getstream.chat.android.ui.mention.list.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.mentions.bindView
Was: io.getstream.chat.android.ui.pinned.list.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.pinned.bindView
Was: io.getstream.chat.android.ui.typing.viewmodel.bindView
Now: io.getstream.chat.android.ui.viewmodel.typing.bindView
ViewModel Changes
In case of using any of Stream’s view models
and view model factories
you’ll need to update their imports as well:
Was: io.getstream.chat.android.ui.message.composer.viewmodel.MessageComposerViewModel
Now: io.getstream.chat.android.ui.viewmodel.messages.MessageComposerViewModel
Was: io.getstream.chat.android.ui.message.list.viewmodel.factory.MessageListViewModelFactory
Now: io.getstream.chat.android.ui.viewmodel.messages.MessageListViewModelFactory
Was: io.getstream.chat.android.ui.message.list.header.viewmodel.MessageListHeaderViewModel
Now: io.getstream.chat.android.ui.viewmodel.messages.MessageListHeaderViewModel
Was: io.getstream.chat.android.ui.search.list.viewmodel.SearchViewModel
Now: io.getstream.chat.android.ui.viewmodel.search.SearchViewModel
Was: io.getstream.chat.android.ui.mention.list.viewmodel.MentionListViewModel
Now: io.getstream.chat.android.ui.viewmodel.mentions.MentionListViewModel
Was: com.getstream.sdk.chat.viewmodel.messages.**Now: io.getstream.chat.android.ui.viewmodel.messages.**
Was: io.getstream.chat.android.ui.channel.list.viewmodel.**Now: io.getstream.chat.android.ui.viewmodel.channels.**
Was: io.getstream.chat.android.ui.channel.list.header.viewmodel.*
Now: io.getstream.chat.android.ui.viewmodel.channels.*
Was: io.getstream.chat.android.ui.pinned.list.viewmodel.*
Now: io.getstream.chat.android.ui.viewmodel.pinned.*
Was: io.getstream.chat.android.ui.typing.viewmodel.*
Now: io.getstream.chat.android.ui.viewmodel.typing.*
Other Import Changes
Most likely, you won’t need these changes. However, in case your customization was deeper than usual, you might also need to update some other imports, such as:
Was: io.getstream.chat.android.compose.state.messages.MessagesState
Now: io.getstream.chat.android.ui.common.state.messages.list.MessageListState
Was: com.getstream.sdk.chat.adapter.MessageListItem
Now: io.getstream.chat.android.ui.feature.messages.list.adapter.MessageListItem
Was: com.getstream.sdk.chat.view.messages.MessageListItemWrapper
Now: io.getstream.chat.android.ui.model.MessageListItemWrapper
Was: io.getstream.chat.android.ui.common.navigation.ChatNavigator
Now: io.getstream.chat.android.ui.navigation.ChatNavigator
Was: com.getstream.sdk.chat.navigation.destinations.ChatDestination
Now: io.getstream.chat.android.ui.navigation.destinations.ChatDestination
Was: com.getstream.sdk.chat.view.EndlessMessageListScrollListener
Now: io.getstream.chat.android.ui.feature.messages.list.EndlessMessageListScrollListener
Was: com.getstream.sdk.chat.view.EndlessScrollListener
Now: io.getstream.chat.android.ui.widgets.EndlessScrollListener
Was: com.getstream.sdk.chat.utils.GridSpacingItemDecoration
Now: io.getstream.chat.android.ui.widgets.GridSpacingItemDecoration
Was: io.getstream.chat.android.ui.common.navigation.destinations.AttachmentDestination
Now: io.getstream.chat.android.ui.navigation.destinations.AttachmentDestination
Was: io.getstream.chat.android.ui.message.list.background.MessageBackgroundFactory
Now: io.getstream.chat.android.ui.feature.messages.list.background.MessageBackgroundFactory
Was: io.getstream.chat.android.ui.message.list.reactions.view.getUserReactionOrientation
Now: io.getstream.chat.android.ui.feature.messages.list.reactions.view.getUserReactionOrientation
Was: io.getstream.chat.android.ui.common.internal.FullScreenDialogFragment
Now: io.getstream.chat.android.ui.widgets.FullScreenDialogFragment
Was: com.getstream.sdk.chat.utils.Utils
Now: io.getstream.chat.android.ui.common.utils.Utils
Was: io.getstream.chat.android.ui.common.Debouncer
Now: io.getstream.chat.android.ui.utils.Debouncer
Was: io.getstream.chat.android.ui.common.extensions.*
Now: io.getstream.chat.android.ui.utils.extensions.*
Was: com.getstream.sdk.chat.utils.extensions.*
Now: io.getstream.chat.android.ui.utils.extensions.*
Was: io.getstream.chat.android.ui.channel.list.adapter.**Now: io.getstream.chat.android.ui.feature.channels.list.**
Was: io.getstream.chat.android.ui.gallery.*
Now: io.getstream.chat.android.ui.feature.gallery.*
Was: io.getstream.chat.android.ui.message.list.adapter.*
Now: io.getstream.chat.android.ui.feature.messages.list.adapter.*
Was: io.getstream.chat.android.ui.message.list.options.message.*
Now: io.getstream.chat.android.ui.feature.messages.list.options.message.*
Was: io.getstream.chat.android.ui.message.composer.**Now: io.getstream.chat.android.ui.feature.messages.composer.**
Was: io.getstream.chat.android.ui.avatar.*
Now: io.getstream.chat.android.ui.widgets.avatar.*