Skip to content

Commit 237ea8f

Browse files
committed
unreads: Add proposal for countInNarrow
1 parent e1f2ede commit 237ea8f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

lib/model/unreads.dart

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,37 @@ class Unreads extends ChangeNotifier {
122122

123123
final int selfUserId;
124124

125+
int countInNarrow(Narrow narrow) {
126+
switch (narrow) {
127+
case DmNarrow():
128+
return dms[narrow]?.length ?? 0;
129+
case AllMessagesNarrow():
130+
int c = 0;
131+
for (final model in dms.values) {
132+
c = c + model.length;
133+
}
134+
for (final streamData in streams.values) {
135+
for (final model in streamData.values) {
136+
c = c + model.length;
137+
}
138+
}
139+
return c;
140+
case StreamNarrow():
141+
final streamData = streams[narrow.streamId];
142+
if (streamData == null) return 0;
143+
int c = 0;
144+
for (final model in streamData.values) {
145+
c = c + model.length;
146+
}
147+
return c;
148+
case TopicNarrow():
149+
final streamData = streams[narrow.streamId];
150+
if (streamData == null) return 0;
151+
final model = streamData[narrow.topic];
152+
return model?.length ?? 0;
153+
}
154+
}
155+
125156
void handleMessageEvent(MessageEvent event) {
126157
final message = event.message;
127158
if (message.flags.contains(MessageFlag.read)) {

0 commit comments

Comments
 (0)