Skip to content

Commit c2983ac

Browse files
committed
Refactor to reduce nesting
1 parent 53b9a84 commit c2983ac

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

Assets/Plugins/StreamChat/Core/StatefulModels/StreamChannel.cs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -840,34 +840,34 @@ private void AssertCid(string cid)
840840
private bool InternalAppendOrUpdateMessage(MessageInternalDTO dto, out StreamMessage streamMessage)
841841
{
842842
streamMessage = Cache.TryCreateOrUpdate(dto, out var wasCreated);
843-
if (wasCreated)
843+
var isNewMessage = wasCreated && !_messages.ContainsNoAlloc(streamMessage);
844+
if (!isNewMessage)
844845
{
845-
if (!_messages.ContainsNoAlloc(streamMessage))
846-
{
847-
var lastMessage = _messages.LastOrDefault();
848-
849-
try
850-
{
851-
_messages.Add(streamMessage);
852-
}
853-
catch
854-
{
855-
streamMessage = null;
856-
return false;
857-
}
846+
return true;
847+
}
848+
849+
var lastMessage = _messages.LastOrDefault();
858850

859-
// If local user sends message during the sync operation.
860-
// It is possible that the locally sent message will be added before the /sync endpoint returns past message events
861-
if (lastMessage != null && streamMessage.CreatedAt < lastMessage.CreatedAt)
862-
{
863-
//StreamTodo: test this more. One way is to toggle Ethernet on PC and send messages from Android client
864-
_messages.Sort(_messageCreateAtComparer);
865-
}
851+
try
852+
{
853+
// Adding message can fail. For example, shadowed messages are ignored
854+
_messages.Add(streamMessage);
855+
}
856+
catch
857+
{
858+
streamMessage = null;
859+
return false;
860+
}
866861

867-
MessageReceived?.Invoke(this, streamMessage);
868-
}
862+
// If local user sends message during the sync operation.
863+
// It is possible that the locally sent message will be added before the /sync endpoint returns past message events
864+
if (lastMessage != null && streamMessage.CreatedAt < lastMessage.CreatedAt)
865+
{
866+
//StreamTodo: test this more. One way is to toggle Ethernet on PC and send messages from Android client
867+
_messages.Sort(_messageCreateAtComparer);
869868
}
870869

870+
MessageReceived?.Invoke(this, streamMessage);
871871
return true;
872872
}
873873

0 commit comments

Comments
 (0)