Skip to content

Commit 33c0f92

Browse files
committed
unreads: Add proposal for countInNarrow
1 parent f09b8d9 commit 33c0f92

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
@@ -125,6 +125,37 @@ class Unreads extends ChangeNotifier {
125125

126126
int countInDmNarrow(DmNarrow narrow) => dms[narrow]?.length ?? 0;
127127

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

0 commit comments

Comments
 (0)