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

  • 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

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.26 MB 5.43 MB 0.18 MB 🟢
stream-chat-android-offline 5.48 MB 5.67 MB 0.18 MB 🟢
stream-chat-android-ui-components 10.63 MB 10.60 MB -0.03 MB 🚀
stream-chat-android-compose 12.85 MB 11.64 MB -1.21 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
# Conflicts:
#	stream-chat-android-state/detekt-baseline.xml
# Conflicts:
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/ChatClient.kt
#	stream-chat-android-state/build.gradle.kts
#	stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/MessageComposerControllerTest.kt
# Conflicts:
#	scripts/local-release.sh
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/event/handler/internal/EventHandlerSequential.kt
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/model/querychannels/pagination/internal/QueryChannelsPaginationRequest.kt
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/plugin/logic/channel/internal/ChannelStateLogic.kt
#	stream-chat-android-client/src/test/java/io/getstream/chat/android/client/internal/state/internal/extensions/ChannelExtensionsTest.kt
#	stream-chat-android-state/build.gradle.kts
@github-actions
Copy link
Contributor

github-actions bot commented Feb 9, 2026

PR checklist ✅

All required conditions are satisfied:

  • Title length is OK (or ignored by label).
  • At least one pr: label exists.
  • Sections ### Goal, ### Implementation, and ### Testing are filled.

🎉 Great job! This PR is ready for review.

@VelikovPetar VelikovPetar added pr:breaking-change Breaking change pr:internal Internal changes / housekeeping labels Feb 9, 2026
# Conflicts:
#	stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/state/model/querychannels/pagination/internal/Mapper.kt
#	stream-chat-android-compose/api/stream-chat-android-compose.api
#	stream-chat-android-state/detekt-baseline.xml
#	stream-chat-android-ui-components/api/stream-chat-android-ui-components.api
@VelikovPetar VelikovPetar changed the title Move state support to LLC Remove stream-chat-android-state module and move state support to stream-chat-android-client Feb 13, 2026
@VelikovPetar VelikovPetar removed the pr:internal Internal changes / housekeeping label Feb 13, 2026
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

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

See analysis details on SonarQube Cloud

@VelikovPetar VelikovPetar merged commit a520a9c into v7 Feb 13, 2026
16 of 17 checks passed
@VelikovPetar VelikovPetar deleted the feature/AND-775_move_state_support_to_client branch February 13, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:breaking-change Breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants