@@ -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
@@ -263,11 +265,11 @@ class DmNarrow extends Narrow implements SendableNarrow {
263
265
late final String _key = otherRecipientIds.join (',' );
264
266
265
267
@override
266
- bool containsMessage (Message message) {
267
- if (message is ! DmMessage ) return false ;
268
- if (message.allRecipientIds.length != allRecipientIds.length) return false ;
268
+ bool containsMessage (MessageBase message) {
269
+ if (message is ! MessageBase < DmRecipient > ) return false ;
270
+ if (message.recipient. allRecipientIds.length != allRecipientIds.length) return false ;
269
271
int i = 0 ;
270
- for (final userId in message.allRecipientIds) {
272
+ for (final userId in message.recipient. allRecipientIds) {
271
273
if (userId != allRecipientIds[i]) return false ;
272
274
i++ ;
273
275
}
@@ -307,7 +309,8 @@ class MentionsNarrow extends Narrow {
307
309
const MentionsNarrow ();
308
310
309
311
@override
310
- bool containsMessage (Message message) {
312
+ bool containsMessage (MessageBase message) {
313
+ if (message is ! Message ) return false ;
311
314
return message.flags.any ((flag) {
312
315
switch (flag) {
313
316
case MessageFlag .mentioned:
@@ -346,7 +349,8 @@ class StarredMessagesNarrow extends Narrow {
346
349
ApiNarrow apiEncode () => [ApiNarrowIs (IsOperand .starred)];
347
350
348
351
@override
349
- bool containsMessage (Message message) {
352
+ bool containsMessage (MessageBase message) {
353
+ if (message is ! Message ) return false ;
350
354
return message.flags.contains (MessageFlag .starred);
351
355
}
352
356
0 commit comments