Conversation
Contributor
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
Contributor
SDK Size Comparison 📏
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Goal
ChannelState.channelData.deletedAtis never populated, so a screen has no way to tell that its channelwas deleted. On the current channel state implementation the deletion also blanks the open screen: the
message list empties and the channel data resets to a placeholder with no name.
Port of #6693 to develop.
Part of AND-1522
Implementation
EventHandlerSequentialevicted thechannel from both registries first, so
channel.deletednever reached the channel event handler and thebranch setting the deletion date was unreachable. Both registries are now evicted right after the batch is
handled.
StateRegistry. It is still dropped from the registry,so later lookups build a fresh state, but consumers holding it keep the channel as it was.
StateRegistry.clear()still destroys everything on logout.notification.channel_deletedin both channel event handlers, which had no branch for it.ChannelStateImpl.deleteChannelcopied onto a null value and dropped the deletion, unlike the legacy implementation.
iOS, where message visibility is gated on the channel's
truncatedAtand never on its deletion date.Testing
EventHandlerSequentialChannelDeletedTestcovers both deletion events against both channel stateimplementations, over the real
StateRegistryandLogicRegistry, asserting the deletion date reaches anactive channel's state, its messages survive, and the channel is discarded from the registry.
deletedAtfrom null to the deletion date. Without the change, the same run empties the message list and blanks the
name, with no deletion date.