fix(@desktop/notifications): fixing wrong mentions counting
This commit is contained in:
parent
c392a473b9
commit
d6d4ae5c79
|
@ -115,12 +115,12 @@ QtObject:
|
||||||
result.formatInputView = newFormatInputView()
|
result.formatInputView = newFormatInputView()
|
||||||
result.ensView = newEnsView(status, appService)
|
result.ensView = newEnsView(status, appService)
|
||||||
result.communities = newCommunitiesView(status)
|
result.communities = newCommunitiesView(status)
|
||||||
result.channelView = newChannelView(status, appService, result.communities)
|
result.activityNotificationList = newActivityNotificationList(status)
|
||||||
|
result.channelView = newChannelView(status, appService, result.communities, result.activityNotificationList)
|
||||||
result.messageView = newMessageView(status, appService, result.channelView, result.communities)
|
result.messageView = newMessageView(status, appService, result.channelView, result.communities)
|
||||||
result.messageSearchViewController = newMessageSearchViewController(status,
|
result.messageSearchViewController = newMessageSearchViewController(status,
|
||||||
appService, result.channelView, result.communities)
|
appService, result.channelView, result.communities)
|
||||||
result.connected = false
|
result.connected = false
|
||||||
result.activityNotificationList = newActivityNotificationList(status)
|
|
||||||
result.reactions = newReactionView(
|
result.reactions = newReactionView(
|
||||||
status,
|
status,
|
||||||
result.messageView.messageList.addr,
|
result.messageView.messageList.addr,
|
||||||
|
@ -236,6 +236,11 @@ QtObject:
|
||||||
|
|
||||||
proc addActivityCenterNotification*(self:ChatsView, activityCenterNotifications: seq[ActivityCenterNotification]) =
|
proc addActivityCenterNotification*(self:ChatsView, activityCenterNotifications: seq[ActivityCenterNotification]) =
|
||||||
for activityCenterNotification in activityCenterNotifications:
|
for activityCenterNotification in activityCenterNotifications:
|
||||||
|
if self.channelView.activeChannel.id == activityCenterNotification.chatId:
|
||||||
|
activityCenterNotification.read = true
|
||||||
|
let communityId = self.status.chat.getCommunityIdForChat(activityCenterNotification.chatId)
|
||||||
|
if communityId != "":
|
||||||
|
self.communities.joinedCommunityList.decrementMentions(communityId, activityCenterNotification.chatId)
|
||||||
self.activityNotificationList.addActivityNotificationItemToList(activityCenterNotification)
|
self.activityNotificationList.addActivityNotificationItemToList(activityCenterNotification)
|
||||||
self.activityNotificationsChanged()
|
self.activityNotificationsChanged()
|
||||||
|
|
||||||
|
|
|
@ -159,6 +159,11 @@ QtObject:
|
||||||
self.dataChanged(index, index, @[NotifRoles.Read.int])
|
self.dataChanged(index, index, @[NotifRoles.Read.int])
|
||||||
i.inc
|
i.inc
|
||||||
|
|
||||||
|
proc markAllChatMentionsAsRead*(self: ActivityNotificationList, communityId: string, chatId: string) =
|
||||||
|
for motification in self.activityCenterNotifications:
|
||||||
|
if (motification.chatId == chatId and not motification.read):
|
||||||
|
self.markActivityCenterNotificationRead(motification.id, communityId, chatId, ActivityCenterNotificationType.Mention.int)
|
||||||
|
|
||||||
proc removeNotifications(self: ActivityNotificationList, ids: seq[string]) =
|
proc removeNotifications(self: ActivityNotificationList, ids: seq[string]) =
|
||||||
var i = 0
|
var i = 0
|
||||||
var indexesToDelete: seq[int] = @[]
|
var indexesToDelete: seq[int] = @[]
|
||||||
|
|
|
@ -6,7 +6,7 @@ import status/chat as status_chat
|
||||||
import status/chat/[chat]
|
import status/chat/[chat]
|
||||||
import ../../../app_service/[main]
|
import ../../../app_service/[main]
|
||||||
|
|
||||||
import communities, chat_item, channels_list, communities, community_list
|
import communities, chat_item, channels_list, communities, community_list, activity_notification_list
|
||||||
|
|
||||||
logScope:
|
logScope:
|
||||||
topics = "channel-view"
|
topics = "channel-view"
|
||||||
|
@ -20,6 +20,7 @@ QtObject:
|
||||||
activeChannel*: ChatItemView
|
activeChannel*: ChatItemView
|
||||||
previousActiveChannelIndex*: int
|
previousActiveChannelIndex*: int
|
||||||
contextChannel*: ChatItemView
|
contextChannel*: ChatItemView
|
||||||
|
activityNotificationList*: ActivityNotificationList
|
||||||
|
|
||||||
proc setup(self: ChannelView) = self.QObject.setup
|
proc setup(self: ChannelView) = self.QObject.setup
|
||||||
proc delete*(self: ChannelView) =
|
proc delete*(self: ChannelView) =
|
||||||
|
@ -28,7 +29,7 @@ QtObject:
|
||||||
self.contextChannel.delete
|
self.contextChannel.delete
|
||||||
self.QObject.delete
|
self.QObject.delete
|
||||||
|
|
||||||
proc newChannelView*(status: Status, appService: AppService, communities: CommunitiesView): ChannelView =
|
proc newChannelView*(status: Status, appService: AppService, communities: CommunitiesView, activityNotificationList: ActivityNotificationList): ChannelView =
|
||||||
new(result, delete)
|
new(result, delete)
|
||||||
result.status = status
|
result.status = status
|
||||||
result.appService = appService
|
result.appService = appService
|
||||||
|
@ -37,6 +38,7 @@ QtObject:
|
||||||
result.contextChannel = newChatItemView(status)
|
result.contextChannel = newChatItemView(status)
|
||||||
result.communities = communities
|
result.communities = communities
|
||||||
result.previousActiveChannelIndex = -1
|
result.previousActiveChannelIndex = -1
|
||||||
|
result.activityNotificationList = activityNotificationList
|
||||||
result.setup
|
result.setup
|
||||||
|
|
||||||
proc getChannel*(self: ChannelView, index: int): Chat =
|
proc getChannel*(self: ChannelView, index: int): Chat =
|
||||||
|
@ -114,7 +116,8 @@ QtObject:
|
||||||
generateAlias(pubKey)
|
generateAlias(pubKey)
|
||||||
|
|
||||||
proc setActiveChannelByIndexWithForce*(self: ChannelView, index: int, forceUpdate: bool) {.slot.} =
|
proc setActiveChannelByIndexWithForce*(self: ChannelView, index: int, forceUpdate: bool) {.slot.} =
|
||||||
if((self.communities.activeCommunity.active and self.communities.activeCommunity.chats.chats.len == 0) or (not self.communities.activeCommunity.active and self.chats.chats.len == 0)): return
|
if((self.communities.activeCommunity.active and self.communities.activeCommunity.chats.chats.len == 0) or (not self.communities.activeCommunity.active and self.chats.chats.len == 0)):
|
||||||
|
return
|
||||||
|
|
||||||
var selectedChannel = self.getChannel(index)
|
var selectedChannel = self.getChannel(index)
|
||||||
|
|
||||||
|
@ -155,6 +158,10 @@ QtObject:
|
||||||
if (channel.len == 0):
|
if (channel.len == 0):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
let communityId = self.status.chat.getCommunityIdForChat(channel)
|
||||||
|
if communityId != "":
|
||||||
|
self.activityNotificationList.markAllChatMentionsAsRead(communityId, channel)
|
||||||
|
|
||||||
if (channel == backToFirstChat):
|
if (channel == backToFirstChat):
|
||||||
if (self.activeChannel.id.len == 0):
|
if (self.activeChannel.id.len == 0):
|
||||||
self.setActiveChannelByIndex(0)
|
self.setActiveChannelByIndex(0)
|
||||||
|
|
|
@ -200,7 +200,6 @@ QtObject:
|
||||||
|
|
||||||
let index = self.createIndex(idx, 0, nil)
|
let index = self.createIndex(idx, 0, nil)
|
||||||
self.chats[idx].unviewedMessagesCount = 0
|
self.chats[idx].unviewedMessagesCount = 0
|
||||||
self.chats[idx].unviewedMentionsCount = 0
|
|
||||||
|
|
||||||
self.dataChanged(index, index, @[ChannelsRoles.UnreadMessages.int])
|
self.dataChanged(index, index, @[ChannelsRoles.UnreadMessages.int])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue