@@ -19,7 +19,7 @@ sealed class Narrow {
19
19
/// This does not necessarily mean the message list would show this message
20
20
/// when navigated to this narrow; in particular it does not address the
21
21
/// question of whether the stream or topic, or the sending user, is muted.
22
- bool containsMessage (Message message);
22
+ bool containsMessage (MessageBase message);
23
23
24
24
/// This narrow, expressed as an [ApiNarrow] .
25
25
ApiNarrow apiEncode ();
@@ -47,7 +47,7 @@ class CombinedFeedNarrow extends Narrow {
47
47
const CombinedFeedNarrow ();
48
48
49
49
@override
50
- bool containsMessage (Message message) {
50
+ bool containsMessage (MessageBase message) {
51
51
return true ;
52
52
}
53
53
@@ -71,8 +71,9 @@ class ChannelNarrow extends Narrow {
71
71
final int streamId;
72
72
73
73
@override
74
- bool containsMessage (Message message) {
75
- return message is StreamMessage && message.streamId == streamId;
74
+ bool containsMessage (MessageBase message) {
75
+ final recipient = message.recipient;
76
+ return recipient is StreamRecipient && recipient.streamId == streamId;
76
77
}
77
78
78
79
@override
@@ -105,9 +106,10 @@ class TopicNarrow extends Narrow implements SendableNarrow {
105
106
TopicNarrow sansWith () => TopicNarrow (streamId, topic);
106
107
107
108
@override
108
- bool containsMessage (Message message) {
109
- return (message is StreamMessage
110
- && message.streamId == streamId && message.topic == topic);
109
+ bool containsMessage (MessageBase message) {
110
+ final recipient = message.recipient;
111
+ return recipient is StreamRecipient
112
+ && recipient.streamId == streamId && recipient.topic == topic;
111
113
}
112
114
113
115
@override
@@ -261,11 +263,11 @@ class DmNarrow extends Narrow implements SendableNarrow {
261
263
late final String _key = otherRecipientIds.join (',' );
262
264
263
265
@override
264
- bool containsMessage (Message message) {
265
- if (message is ! DmMessage ) return false ;
266
- if (message.allRecipientIds.length != allRecipientIds.length) return false ;
266
+ bool containsMessage (MessageBase message) {
267
+ if (message is ! MessageBase < DmRecipient > ) return false ;
268
+ if (message.recipient. allRecipientIds.length != allRecipientIds.length) return false ;
267
269
int i = 0 ;
268
- for (final userId in message.allRecipientIds) {
270
+ for (final userId in message.recipient. allRecipientIds) {
269
271
if (userId != allRecipientIds[i]) return false ;
270
272
i++ ;
271
273
}
@@ -305,7 +307,8 @@ class MentionsNarrow extends Narrow {
305
307
const MentionsNarrow ();
306
308
307
309
@override
308
- bool containsMessage (Message message) {
310
+ bool containsMessage (MessageBase message) {
311
+ if (message is ! Message ) return false ;
309
312
return message.flags.any ((flag) {
310
313
switch (flag) {
311
314
case MessageFlag .mentioned:
@@ -344,7 +347,8 @@ class StarredMessagesNarrow extends Narrow {
344
347
ApiNarrow apiEncode () => [ApiNarrowIs (IsOperand .starred)];
345
348
346
349
@override
347
- bool containsMessage (Message message) {
350
+ bool containsMessage (MessageBase message) {
351
+ if (message is ! Message ) return false ;
348
352
return message.flags.contains (MessageFlag .starred);
349
353
}
350
354
0 commit comments