Skip to content

Commit 020685d

Browse files
committed
narrow [nfc]: Make containsMessage support MessageBase
1 parent 975aa38 commit 020685d

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

lib/model/narrow.dart

+17-13
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sealed class Narrow {
1919
/// This does not necessarily mean the message list would show this message
2020
/// when navigated to this narrow; in particular it does not address the
2121
/// question of whether the stream or topic, or the sending user, is muted.
22-
bool containsMessage(Message message);
22+
bool containsMessage(MessageBase message);
2323

2424
/// This narrow, expressed as an [ApiNarrow].
2525
ApiNarrow apiEncode();
@@ -47,7 +47,7 @@ class CombinedFeedNarrow extends Narrow {
4747
const CombinedFeedNarrow();
4848

4949
@override
50-
bool containsMessage(Message message) {
50+
bool containsMessage(MessageBase message) {
5151
return true;
5252
}
5353

@@ -71,8 +71,9 @@ class ChannelNarrow extends Narrow {
7171
final int streamId;
7272

7373
@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;
7677
}
7778

7879
@override
@@ -105,9 +106,10 @@ class TopicNarrow extends Narrow implements SendableNarrow {
105106
TopicNarrow sansWith() => TopicNarrow(streamId, topic);
106107

107108
@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;
111113
}
112114

113115
@override
@@ -263,11 +265,11 @@ class DmNarrow extends Narrow implements SendableNarrow {
263265
late final String _key = otherRecipientIds.join(',');
264266

265267
@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;
269271
int i = 0;
270-
for (final userId in message.allRecipientIds) {
272+
for (final userId in message.recipient.allRecipientIds) {
271273
if (userId != allRecipientIds[i]) return false;
272274
i++;
273275
}
@@ -307,7 +309,8 @@ class MentionsNarrow extends Narrow {
307309
const MentionsNarrow();
308310

309311
@override
310-
bool containsMessage(Message message) {
312+
bool containsMessage(MessageBase message) {
313+
if (message is! Message) return false;
311314
return message.flags.any((flag) {
312315
switch (flag) {
313316
case MessageFlag.mentioned:
@@ -346,7 +349,8 @@ class StarredMessagesNarrow extends Narrow {
346349
ApiNarrow apiEncode() => [ApiNarrowIs(IsOperand.starred)];
347350

348351
@override
349-
bool containsMessage(Message message) {
352+
bool containsMessage(MessageBase message) {
353+
if (message is! Message) return false;
350354
return message.flags.contains(MessageFlag.starred);
351355
}
352356

0 commit comments

Comments
 (0)