From 68836b9c680128a99588d28fbd30ca1a845fb141 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 6 Sep 2021 14:59:30 +0100 Subject: [PATCH] hide no-op m.room.encryption events and better word param changes --- src/components/views/messages/EncryptionEvent.tsx | 15 ++++++++++++--- src/i18n/strings/en_EN.json | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/components/views/messages/EncryptionEvent.tsx b/src/components/views/messages/EncryptionEvent.tsx index 0f716ed010..88b96e0c5e 100644 --- a/src/components/views/messages/EncryptionEvent.tsx +++ b/src/components/views/messages/EncryptionEvent.tsx @@ -22,20 +22,27 @@ import { MatrixClientPeg } from '../../../MatrixClientPeg'; import EventTileBubble from "./EventTileBubble"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import DMRoomMap from "../../../utils/DMRoomMap"; +import { objectHasDiff } from "../../../utils/objects"; interface IProps { mxEvent: MatrixEvent; } +const ALGORITHM = "m.megolm.v1.aes-sha2"; + const EncryptionEvent = forwardRef(({ mxEvent }, ref) => { const cli = useContext(MatrixClientContext); const roomId = mxEvent.getRoomId(); const isRoomEncrypted = MatrixClientPeg.get().isRoomEncrypted(roomId); - if (mxEvent.getContent().algorithm === 'm.megolm.v1.aes-sha2' && isRoomEncrypted) { + if (!objectHasDiff(mxEvent.getPrevContent(), mxEvent.getContent())) return null; // nop + + if (mxEvent.getContent().algorithm === ALGORITHM && isRoomEncrypted) { let subtitle: string; const dmPartner = DMRoomMap.shared().getUserIdForRoomId(roomId); - if (dmPartner) { + if (mxEvent.getPrevContent().algorithm === ALGORITHM) { + subtitle = _t("Some encryption parameters have been changed."); + } else if (dmPartner) { const displayName = cli?.getRoom(roomId)?.getMember(dmPartner)?.rawDisplayName || dmPartner; subtitle = _t("Messages here are end-to-end encrypted. " + "Verify %(displayName)s in their profile - tap on their avatar.", { displayName }); @@ -49,7 +56,9 @@ const EncryptionEvent = forwardRef(({ mxEvent }, ref) => title={_t("Encryption enabled")} subtitle={subtitle} />; - } else if (isRoomEncrypted) { + } + + if (isRoomEncrypted) { return