@@ -1929,17 +1929,24 @@ void checkInvariants(MessageListView model) {
1929
1929
check (model).fetchOlderCoolingDown.isFalse ();
1930
1930
}
1931
1931
1932
- for (final message in model.messages) {
1933
- check (model.store.messages)[message.id].isNotNull ().identicalTo (message);
1932
+ final allMessages = < MessageBase <Conversation >> [...model.messages];
1933
+
1934
+ for (final message in allMessages) {
1935
+ if (message is Message ) {
1936
+ check (model.store.messages)[message.id].isNotNull ().identicalTo (message);
1937
+ } else {
1938
+ assert (false );
1939
+ }
1934
1940
check (model.narrow.containsMessage (message)).isTrue ();
1935
1941
1936
- if (message is ! StreamMessage ) continue ;
1942
+ if (message is ! MessageBase <StreamConversation >) continue ;
1943
+ final conversation = message.conversation;
1937
1944
switch (model.narrow) {
1938
1945
case CombinedFeedNarrow ():
1939
- check (model.store.isTopicVisible (message .streamId, message .topic))
1946
+ check (model.store.isTopicVisible (conversation .streamId, conversation .topic))
1940
1947
.isTrue ();
1941
1948
case ChannelNarrow ():
1942
- check (model.store.isTopicVisibleInStream (message .streamId, message .topic))
1949
+ check (model.store.isTopicVisibleInStream (conversation .streamId, conversation .topic))
1943
1950
.isTrue ();
1944
1951
case TopicNarrow ():
1945
1952
case DmNarrow ():
@@ -1963,23 +1970,28 @@ void checkInvariants(MessageListView model) {
1963
1970
}
1964
1971
1965
1972
int i = 0 ;
1966
- for (int j = 0 ; j < model.messages .length; j++ ) {
1973
+ for (int j = 0 ; j < allMessages .length; j++ ) {
1967
1974
bool forcedShowSender = false ;
1968
1975
if (j == 0
1969
- || ! haveSameRecipient (model.messages [j- 1 ], model.messages [j])) {
1976
+ || ! haveSameRecipient (allMessages [j- 1 ], allMessages [j])) {
1970
1977
check (model.items[i++ ]).isA <MessageListRecipientHeaderItem >()
1971
- .message.identicalTo (model.messages [j]);
1978
+ .message.identicalTo (allMessages [j]);
1972
1979
forcedShowSender = true ;
1973
- } else if (! messagesSameDay (model.messages [j- 1 ], model.messages [j])) {
1980
+ } else if (! messagesSameDay (allMessages [j- 1 ], allMessages [j])) {
1974
1981
check (model.items[i++ ]).isA <MessageListDateSeparatorItem >()
1975
- .message.identicalTo (model.messages [j]);
1982
+ .message.identicalTo (allMessages [j]);
1976
1983
forcedShowSender = true ;
1977
1984
}
1978
- check (model.items[i++ ]).isA <MessageListMessageItem >()
1979
- ..message.identicalTo (model.messages[j])
1980
- ..content.identicalTo (model.contents[j])
1985
+ if (j < model.messages.length) {
1986
+ check (model.items[i]).isA <MessageListMessageItem >()
1987
+ ..message.identicalTo (model.messages[j])
1988
+ ..content.identicalTo (model.contents[j]);
1989
+ } else {
1990
+ assert (false );
1991
+ }
1992
+ check (model.items[i++ ]).isA <MessageListMessageBaseItem >()
1981
1993
..showSender.equals (
1982
- forcedShowSender || model.messages [j].senderId != model.messages [j- 1 ].senderId)
1994
+ forcedShowSender || allMessages [j].senderId != allMessages [j- 1 ].senderId)
1983
1995
..isLastInBlock.equals (
1984
1996
i == model.items.length || switch (model.items[i]) {
1985
1997
MessageListMessageItem ()
0 commit comments