Fix bumping unloaded rooms in room list when receiving messages
This commit is contained in:
parent
160b035c4d
commit
0f08c49df4
@ -44,6 +44,7 @@ type MainView interface {
|
|||||||
AddRoom(room *rooms.Room)
|
AddRoom(room *rooms.Room)
|
||||||
RemoveRoom(room *rooms.Room)
|
RemoveRoom(room *rooms.Room)
|
||||||
SetRooms(rooms *rooms.RoomCache)
|
SetRooms(rooms *rooms.RoomCache)
|
||||||
|
Bump(room *rooms.Room)
|
||||||
|
|
||||||
UpdateTags(room *rooms.Room)
|
UpdateTags(room *rooms.Room)
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ func (c *Container) HandleMessage(source EventSource, evt *mautrix.Event) {
|
|||||||
debug.Printf("Failed to add event %s to history: %v", evt.ID, err)
|
debug.Printf("Failed to add event %s to history: %v", evt.ID, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !c.config.AuthCache.InitialSyncDone || !room.Loaded() {
|
if !c.config.AuthCache.InitialSyncDone {
|
||||||
room.LastReceivedMessage = time.Unix(evt.Timestamp/1000, evt.Timestamp%1000*1000)
|
room.LastReceivedMessage = time.Unix(evt.Timestamp/1000, evt.Timestamp%1000*1000)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -328,6 +328,17 @@ func (c *Container) HandleMessage(source EventSource, evt *mautrix.Event) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !room.Loaded() {
|
||||||
|
pushRules := c.PushRules().GetActions(room, evt).Should()
|
||||||
|
shouldNotify := pushRules.Notify || !pushRules.NotifySpecified
|
||||||
|
if !shouldNotify {
|
||||||
|
room.LastReceivedMessage = time.Unix(evt.Timestamp/1000, evt.Timestamp%1000*1000)
|
||||||
|
room.AddUnread(evt.ID, shouldNotify, pushRules.Highlight)
|
||||||
|
mainView.Bump(room)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO switch to roomView.AddEvent
|
// TODO switch to roomView.AddEvent
|
||||||
message := roomView.ParseEvent(evt)
|
message := roomView.ParseEvent(evt)
|
||||||
if message != nil {
|
if message != nil {
|
||||||
|
@ -387,8 +387,12 @@ func sendNotification(room *rooms.Room, sender, text string, critical, sound boo
|
|||||||
notification.Send(sender, text, critical, sound)
|
notification.Send(sender, text, critical, sound)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (view *MainView) NotifyMessage(room *rooms.Room, message ifc.Message, should pushrules.PushActionArrayShould) {
|
func (view *MainView) Bump(room *rooms.Room) {
|
||||||
view.roomList.Bump(room)
|
view.roomList.Bump(room)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (view *MainView) NotifyMessage(room *rooms.Room, message ifc.Message, should pushrules.PushActionArrayShould) {
|
||||||
|
view.Bump(room)
|
||||||
uiMsg, ok := message.(*messages.UIMessage)
|
uiMsg, ok := message.(*messages.UIMessage)
|
||||||
if ok && uiMsg.SenderID == view.config.UserID {
|
if ok && uiMsg.SenderID == view.config.UserID {
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user