Skip to content

Commit 7fa3dee

Browse files
committed
unreads: Exclude muted DM conversations in combined-feed and all-dm counts
1 parent 57ef90f commit 7fa3dee

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

lib/model/unreads.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ class Unreads extends PerAccountStoreBase with ChangeNotifier {
230230

231231
int countInAllDms() {
232232
int c = 0;
233-
for (final messageIds in dms.values) {
233+
for (final MapEntry(key: narrow, value: messageIds) in dms.entries) {
234+
if (channelStore.shouldMuteDmConversation(narrow)) continue;
234235
c += messageIds.length;
235236
}
236237
return c;

test/model/unreads_test.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,16 +191,18 @@ void main() {
191191
await store.addSubscription(eg.subscription(stream2));
192192
await store.addSubscription(eg.subscription(stream3, isMuted: true));
193193
await store.setUserTopic(stream1, 'a', UserTopicVisibilityPolicy.muted);
194+
await store.setMutedUsers([eg.thirdUser.userId]);
194195
fillWithMessages([
195196
eg.streamMessage(stream: stream1, topic: 'a', flags: []),
196197
eg.streamMessage(stream: stream1, topic: 'b', flags: []),
197198
eg.streamMessage(stream: stream1, topic: 'b', flags: []),
198199
eg.streamMessage(stream: stream2, topic: 'c', flags: []),
199200
eg.streamMessage(stream: stream3, topic: 'd', flags: []),
200201
eg.dmMessage(from: eg.otherUser, to: [eg.selfUser], flags: []),
202+
// Exclude because user is muted
201203
eg.dmMessage(from: eg.thirdUser, to: [eg.selfUser], flags: []),
202204
]);
203-
check(model.countInCombinedFeedNarrow()).equals(5);
205+
check(model.countInCombinedFeedNarrow()).equals(4);
204206
});
205207

206208
test('countInChannel/Narrow', () async {
@@ -274,12 +276,16 @@ void main() {
274276

275277
test('countInAllDms', () async {
276278
prepare();
279+
await store.setMutedUsers([eg.thirdUser.userId]);
277280
fillWithMessages([
281+
// No one is muted: don't exclude
278282
eg.dmMessage(from: eg.otherUser, to: [eg.selfUser], flags: []),
283+
// Everyone is muted: exclude
279284
eg.dmMessage(from: eg.thirdUser, to: [eg.selfUser], flags: []),
285+
// One is muted, one isn't: don't exclude
280286
eg.dmMessage(from: eg.thirdUser, to: [eg.selfUser, eg.otherUser], flags: []),
281287
]);
282-
check(model.countInCombinedFeedNarrow()).equals(3);
288+
check(model.countInCombinedFeedNarrow()).equals(2);
283289
});
284290
});
285291

0 commit comments

Comments
 (0)