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)
|
||||
RemoveRoom(room *rooms.Room)
|
||||
SetRooms(rooms *rooms.RoomCache)
|
||||
Bump(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)
|
||||
}
|
||||
|
||||
if !c.config.AuthCache.InitialSyncDone || !room.Loaded() {
|
||||
if !c.config.AuthCache.InitialSyncDone {
|
||||
room.LastReceivedMessage = time.Unix(evt.Timestamp/1000, evt.Timestamp%1000*1000)
|
||||
return
|
||||
}
|
||||
@ -328,6 +328,17 @@ func (c *Container) HandleMessage(source EventSource, evt *mautrix.Event) {
|
||||
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
|
||||
message := roomView.ParseEvent(evt)
|
||||
if message != nil {
|
||||
|
@ -387,8 +387,12 @@ func sendNotification(room *rooms.Room, sender, text string, critical, sound boo
|
||||
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)
|
||||
}
|
||||
|
||||
func (view *MainView) NotifyMessage(room *rooms.Room, message ifc.Message, should pushrules.PushActionArrayShould) {
|
||||
view.Bump(room)
|
||||
uiMsg, ok := message.(*messages.UIMessage)
|
||||
if ok && uiMsg.SenderID == view.config.UserID {
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user