From b31d96881432ebb1d4918ae970fabfd6362e1186 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 26 Mar 2018 17:22:47 +0300 Subject: Show notifications and highlights in room list. Fixes #8 --- matrix/rooms/room.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'matrix/rooms/room.go') diff --git a/matrix/rooms/room.go b/matrix/rooms/room.go index c24b6db..7dd2af4 100644 --- a/matrix/rooms/room.go +++ b/matrix/rooms/room.go @@ -32,6 +32,16 @@ type Room struct { PrevBatch string // The MXID of the user whose session this room was created for. SessionUserID string + + // The number of unread messages that were notified about. + UnreadMessages int + // Whether or not any of the unread messages were highlights. + Highlighted bool + // Whether or not the room contains any new messages. + // This can be true even when UnreadMessages is zero if there's + // a notificationless message like bot notices. + HasNewMessages bool + // MXID -> Member cache calculated from membership events. memberCache map[string]*Member // The first non-SessionUserID member in the room. Calculated at @@ -65,6 +75,13 @@ func (room *Room) UnlockHistory() { } } +// MarkRead clears the new message statuses on this room. +func (room *Room) MarkRead() { + room.UnreadMessages = 0 + room.Highlighted = false + room.HasNewMessages = false +} + // UpdateState updates the room's current state with the given Event. This will clobber events based // on the type/state_key combination. func (room *Room) UpdateState(event *gomatrix.Event) { -- cgit v1.2.3