File tree 1 file changed +31
-0
lines changed 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -125,6 +125,37 @@ class Unreads extends ChangeNotifier {
125
125
126
126
int countInDmNarrow (DmNarrow narrow) => dms[narrow]? .length ?? 0 ;
127
127
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
+
128
159
void handleMessageEvent (MessageEvent event) {
129
160
final message = event.message;
130
161
if (message.flags.contains (MessageFlag .read)) {
You can’t perform that action at this time.
0 commit comments