1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-11-28 05:03:59 +03:00

Calculate unread badges for encrypted events

This commit is contained in:
Travis Ralston
2019-03-04 21:41:20 -07:00
parent bcd4ad130c
commit 4834e12a3a

View File

@@ -2304,7 +2304,20 @@ function _membershipChange(client, roomId, userId, membership, reason, callback)
*/ */
MatrixClient.prototype.getPushActionsForEvent = function(event, ignoreCache = false) { MatrixClient.prototype.getPushActionsForEvent = function(event, ignoreCache = false) {
if (!event.getPushActions() || ignoreCache) { if (!event.getPushActions() || ignoreCache) {
event.setPushActions(this._pushProcessor.actionsForEvent(event)); const oldActions = event.getPushActions();
const actions = this._pushProcessor.actionsForEvent(event);
event.setPushActions(actions);
// Ensure the unread counts are kept up to date if the event is encrypted
const oldHighlight = oldActions && oldActions.tweaks ? !!oldActions.tweaks.highlight : false;
const newHighlight = actions && actions.tweaks ? !!actions.tweaks.highlight : false;
if (oldHighlight !== newHighlight && event.isEncrypted()) {
const room = this.getRoom(event.getRoomId());
if (room) {
const current = room.getUnreadNotificationCount("highlight");
room.setUnreadNotificationCount("highlight", newHighlight ? current + 1 : current - 1);
}
}
} }
return event.getPushActions(); return event.getPushActions();
}; };