Skip to content

Conversation

@VelikovPetar
Copy link
Contributor

@VelikovPetar VelikovPetar commented Jan 5, 2026

🎯 Goal

Removes the stream-chat-android-state module and moves the StreamStatePluginFactory/StatePlugin to the LLC (stream-chat-android-client).

🛠 Implementation details

  • Moves ALL classes to the client module: internal classes to the package io.getstream.chat.android.client.internal.state, and public classes to io.getstream.chat.android.client.api.state
  • The StreamStatePluginFactory in now marked as InternalStreamChatApi to disallow instantiation. (note: will be made internal in an upcoming PR)
  • The state is configured via a renamed class StateConfig(previously named StatePluginConfig), via the ChatClient.Builder.stateConfig(StateConfig) method
  • The StatePlugin is now always instantiated in the ChatClient, there is no option to opt-out of it

🎨 UI Changes

NA

🧪 Testing

There should be no functional differences - test with either the Compose or XML SDKs and everything should work as before.

# Conflicts:
#	stream-chat-android-state/src/main/java/io/getstream/chat/android/state/utils/internal/ChannelUtils.kt
#	stream-chat-android-state/src/main/java/io/getstream/chat/android/state/utils/internal/CustomObjectFiltering.kt
#	stream-chat-android-state/src/test/java/io/getstream/chat/android/state/utils/CustomObjectFilteringTest.kt
@VelikovPetar VelikovPetar changed the base branch from develop to v7 January 5, 2026 10:08
@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

SDK Size Comparison 📏

SDK Before After Difference Status
stream-chat-android-client 5.25 MB 5.43 MB 0.18 MB 🟢
stream-chat-android-offline 5.48 MB 5.66 MB 0.18 MB 🟢
stream-chat-android-ui-components 10.60 MB 10.57 MB -0.02 MB 🚀
stream-chat-android-compose 12.81 MB 11.63 MB -1.19 MB 🚀

…rt_to_client' into feature/AND-775_move_state_support_to_client

# Conflicts:
#	stream-chat-android-client/src/test/java/io/getstream/chat/android/client/internal/state/plugin/listener/internal/SendGiphyListenerStateTest.kt
@VelikovPetar VelikovPetar marked this pull request as ready for review January 6, 2026 08:45
@VelikovPetar VelikovPetar requested a review from a team as a code owner January 6, 2026 08:45
# Conflicts:
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/plugin/logic/channel/internal/ChannelEventHandler.kt
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/plugin/logic/channel/internal/ChannelLogic.kt
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/plugin/logic/channel/internal/ChannelLogicImpl.kt
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/plugin/logic/internal/LogicRegistry.kt
#	stream-chat-android-client/src/test/java/io/getstream/chat/android/client/internal/state/channel/controller/WhenHandleEvent.kt
#	stream-chat-android-client/src/test/java/io/getstream/chat/android/client/internal/state/plugin/logic/channel/internal/ChannelEventHandlerTest.kt
# Conflicts:
#	fastlane/Fastfile
#	settings.gradle.kts
#	stream-chat-android-ui-common/build.gradle.kts
#	stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/channels/ChannelListViewModel.kt
#	stream-chat-android-ui-utils/build.gradle.kts
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
49.4% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants