Skip to content

Commit

Permalink
Remove reply fallback from notifications (#11278)
Browse files Browse the repository at this point in the history
* Remove reply fallback from notifications

* Add test
  • Loading branch information
t3chguy committed Jul 17, 2023
1 parent 8f00038 commit 9fcd1f2
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
5 changes: 3 additions & 2 deletions src/Notifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ import ToastStore from "./stores/ToastStore";
import { ElementCall } from "./models/Call";
import { VoiceBroadcastChunkEventType, VoiceBroadcastInfoEventType } from "./voice-broadcast";
import { getSenderName } from "./utils/event/getSenderName";
import { stripPlainReply } from "./utils/Reply";

/*
* Dispatches:
Expand Down Expand Up @@ -138,7 +139,7 @@ class NotifierClass {
// notificationMessageForEvent includes sender, but we already have the sender here
const msgType = ev.getContent().msgtype;
if (ev.getContent().body && (!msgType || !msgTypeHandlers.hasOwnProperty(msgType))) {
msg = ev.getContent().body;
msg = stripPlainReply(ev.getContent().body);
}
} else if (ev.getType() === "m.room.member") {
// context is all in the message here, we don't need
Expand All @@ -149,7 +150,7 @@ class NotifierClass {
// notificationMessageForEvent includes sender, but we've just out sender in the title
const msgType = ev.getContent().msgtype;
if (ev.getContent().body && (!msgType || !msgTypeHandlers.hasOwnProperty(msgType))) {
msg = ev.getContent().body;
msg = stripPlainReply(ev.getContent().body);
}
}

Expand Down
33 changes: 32 additions & 1 deletion test/Notifier-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,13 @@ import {
createLocalNotificationSettingsIfNeeded,
getLocalNotificationAccountDataEventType,
} from "../src/utils/notifications";
import { getMockClientWithEventEmitter, mkEvent, mockClientMethodsUser, mockPlatformPeg } from "./test-utils";
import {
getMockClientWithEventEmitter,
mkEvent,
mkMessage,
mockClientMethodsUser,
mockPlatformPeg,
} from "./test-utils";
import { IncomingCallToast } from "../src/toasts/IncomingCallToast";
import { SdkContextClass } from "../src/contexts/SDKContext";
import UserActivity from "../src/UserActivity";
Expand All @@ -42,6 +48,7 @@ import { ThreadPayload } from "../src/dispatcher/payloads/ThreadPayload";
import { Action } from "../src/dispatcher/actions";
import { VoiceBroadcastChunkEventType, VoiceBroadcastInfoState } from "../src/voice-broadcast";
import { mkVoiceBroadcastInfoStateEvent } from "./voice-broadcast/utils/test-utils";
import { addReplyToMessageContent } from "../src/utils/Reply";

jest.mock("../src/utils/notifications", () => ({
// @ts-ignore
Expand Down Expand Up @@ -307,6 +314,30 @@ describe("Notifier", () => {
Notifier.displayPopupNotification(audioEvent, testRoom);
expect(MockPlatform.displayNotification).not.toHaveBeenCalled();
});

it("should strip reply fallback", () => {
const event = mkMessage({
msg: "Test",
event: true,
user: mockClient.getSafeUserId(),
room: testRoom.roomId,
});
const reply = mkMessage({
msg: "This was a triumph",
event: true,
user: mockClient.getSafeUserId(),
room: testRoom.roomId,
});
addReplyToMessageContent(reply.getContent(), event, { includeLegacyFallback: true });
Notifier.displayPopupNotification(reply, testRoom);
expect(MockPlatform.displayNotification).toHaveBeenCalledWith(
"@bob:example.org (!room1:server)",
"This was a triumph",
expect.any(String),
testRoom,
reply,
);
});
});

describe("getSoundForRoom", () => {
Expand Down

0 comments on commit 9fcd1f2

Please sign in to comment.