diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-05-16 20:09:09 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-05-16 20:51:43 +0300 |
commit | 8a3fbc24ab430443b89dfa45e726ab96ad3ea1ec (patch) | |
tree | 7aab3b58b1d4119c752f8fd549c14e587da15279 /ui/room-list.go | |
parent | c88801a65782d28184aa73a8d25ed3e8a8641f82 (diff) |
Handle m.direct and m.receipt events
Fixes #12
Fixes #45
Diffstat (limited to 'ui/room-list.go')
-rw-r--r-- | ui/room-list.go | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/ui/room-list.go b/ui/room-list.go index 613e587..6905d0e 100644 --- a/ui/room-list.go +++ b/ui/room-list.go @@ -265,6 +265,7 @@ func (list *RoomList) Contains(roomID string) bool { } func (list *RoomList) Add(room *rooms.Room) { + debug.Print("Adding room to list", room.ID, room.GetTitle(), room.IsDirect, room.Tags()) for _, tag := range room.Tags() { list.AddToTag(tag, room) } @@ -289,10 +290,6 @@ func (list *RoomList) CheckTag(tag string) { } func (list *RoomList) AddToTag(tag rooms.RoomTag, room *rooms.Room) { - if tag.Tag == "" && len(room.GetMembers()) == 2 { - tag.Tag = "net.maunium.gomuks.fake.direct" - } - tagRoomList, ok := list.items[tag.Tag] if !ok { list.items[tag.Tag] = newTagRoomList(convertRoom(room)) @@ -304,8 +301,8 @@ func (list *RoomList) AddToTag(tag rooms.RoomTag, room *rooms.Room) { } func (list *RoomList) Remove(room *rooms.Room) { - for _, tag := range room.Tags() { - list.RemoveFromTag(tag.Tag, room) + for _, tag := range list.tags { + list.RemoveFromTag(tag, room) } } @@ -707,21 +704,22 @@ func (list *RoomList) Draw(screen tcell.Screen) { if tag == list.selectedTag && item.Room == list.selected { style = style.Foreground(list.selectedTextColor).Background(list.selectedBackgroundColor) } - if item.HasNewMessages { + if item.HasNewMessages() { style = style.Bold(true) } - if item.UnreadMessages > 0 { + unreadCount := item.UnreadCount() + if unreadCount > 0 { unreadMessageCount := "99+" - if item.UnreadMessages < 100 { - unreadMessageCount = strconv.Itoa(item.UnreadMessages) + if unreadCount < 100 { + unreadMessageCount = strconv.Itoa(unreadCount) } - if item.Highlighted { + if item.Highlighted() { unreadMessageCount += "!" } unreadMessageCount = fmt.Sprintf("(%s)", unreadMessageCount) - widget.WriteLine(screen, tview.AlignRight, unreadMessageCount, x+lineWidth-6, y, 6, style) - lineWidth -= len(unreadMessageCount) + 1 + widget.WriteLine(screen, tview.AlignRight, unreadMessageCount, x+lineWidth-7, y, 7, style) + lineWidth -= len(unreadMessageCount) } widget.WriteLinePadded(screen, tview.AlignLeft, text, x, y, lineWidth, style) |