From 63e69eaa2781611ce777badf5f6d4b79d0a549f6 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Mon, 14 Feb 2022 10:48:57 +0100 Subject: [PATCH] feat: Add hasNewMessages flag to room This makes it possible to check if muted rooms have unread messages. --- lib/src/room.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/src/room.dart b/lib/src/room.dart index 8225357a..f9d0a4e9 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -511,7 +511,16 @@ class Room { .unread; } - /// Returns true if this room is unread + /// Checks if the last event has a read marker of the user. + bool get hasNewMessages { + final lastEvent = this.lastEvent; + return lastEvent != null && + !lastEvent.receipts + .any((receipt) => receipt.user.senderId == client.userID!); + } + + /// Returns true if this room is unread. To check if there are new messages + /// in muted rooms, use [hasNewMessages]. bool get isUnread => notificationCount > 0 || markedUnread; @Deprecated('Use [markUnread] instead')