Hide message contents in notifications for message requests
This commit is contained in:
parent
822b162136
commit
3a069323a4
4 changed files with 42 additions and 5 deletions
|
@ -4475,6 +4475,10 @@
|
|||
"messageformat": "Draft:",
|
||||
"description": "Prefix shown in italic in conversation view when a draft is saved"
|
||||
},
|
||||
"icu:message--getNotificationText--messageRequest": {
|
||||
"messageformat": "Message Request",
|
||||
"description": "Shown in notifications and in the left pane when a message request is received."
|
||||
},
|
||||
"message--getNotificationText--gif": {
|
||||
"message": "GIF",
|
||||
"description": "(deleted 03/29/2023) Shown in notifications and in the left pane when a GIF is received."
|
||||
|
|
|
@ -185,6 +185,7 @@ import * as Edits from '../messageModifiers/Edits';
|
|||
import { handleEditMessage } from '../util/handleEditMessage';
|
||||
import { getQuoteBodyText } from '../util/getQuoteBodyText';
|
||||
import { shouldReplyNotifyUser } from '../util/shouldReplyNotifyUser';
|
||||
import { isConversationAccepted } from '../util/isConversationAccepted';
|
||||
import type { RawBodyRange } from '../types/BodyRange';
|
||||
import { BodyRange, applyRangesForText } from '../types/BodyRange';
|
||||
|
||||
|
@ -831,6 +832,17 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
|||
const { text, emoji } = this.getNotificationData();
|
||||
const { attributes } = this;
|
||||
|
||||
const conversation = this.getConversation();
|
||||
|
||||
strictAssert(
|
||||
conversation != null,
|
||||
'Conversation not found in ConversationController'
|
||||
);
|
||||
|
||||
if (!isConversationAccepted(conversation.attributes)) {
|
||||
return window.i18n('icu:message--getNotificationText--messageRequest');
|
||||
}
|
||||
|
||||
if (attributes.storyReaction) {
|
||||
if (attributes.type === 'outgoing') {
|
||||
const name = this.getConversation()?.get('profileName');
|
||||
|
|
|
@ -47,8 +47,11 @@ describe('Conversations', () => {
|
|||
password: 'password',
|
||||
});
|
||||
await window.ConversationController.load();
|
||||
|
||||
await window.Signal.Data.saveConversation(conversation.attributes);
|
||||
await window.ConversationController.getOrCreateAndWait(
|
||||
conversation.attributes.e164 ?? null,
|
||||
conversation.attributes.type,
|
||||
conversation.attributes
|
||||
);
|
||||
|
||||
// Creating a fake message
|
||||
const now = Date.now();
|
||||
|
|
|
@ -588,9 +588,15 @@ describe('Message', () => {
|
|||
});
|
||||
|
||||
describe('getNotificationText', () => {
|
||||
it("returns a notification's text", () => {
|
||||
it("returns a notification's text", async () => {
|
||||
assert.strictEqual(
|
||||
createMessage({
|
||||
conversationId: (
|
||||
await window.ConversationController.getOrCreateAndWait(
|
||||
UUID.generate().toString(),
|
||||
'private'
|
||||
)
|
||||
).id,
|
||||
type: 'incoming',
|
||||
source,
|
||||
body: 'hello world',
|
||||
|
@ -599,7 +605,7 @@ describe('Message', () => {
|
|||
);
|
||||
});
|
||||
|
||||
it("shows a notification's emoji on non-Linux", function test() {
|
||||
it("shows a notification's emoji on non-Linux", async function test() {
|
||||
this.sandbox.replace(window.Signal, 'OS', {
|
||||
...window.Signal.OS,
|
||||
isLinux() {
|
||||
|
@ -609,6 +615,12 @@ describe('Message', () => {
|
|||
|
||||
assert.strictEqual(
|
||||
createMessage({
|
||||
conversationId: (
|
||||
await window.ConversationController.getOrCreateAndWait(
|
||||
UUID.generate().toString(),
|
||||
'private'
|
||||
)
|
||||
).id,
|
||||
type: 'incoming',
|
||||
source,
|
||||
attachments: [
|
||||
|
@ -621,7 +633,7 @@ describe('Message', () => {
|
|||
);
|
||||
});
|
||||
|
||||
it('hides emoji on Linux', function test() {
|
||||
it('hides emoji on Linux', async function test() {
|
||||
this.sandbox.replace(window.Signal, 'OS', {
|
||||
...window.Signal.OS,
|
||||
isLinux() {
|
||||
|
@ -631,6 +643,12 @@ describe('Message', () => {
|
|||
|
||||
assert.strictEqual(
|
||||
createMessage({
|
||||
conversationId: (
|
||||
await window.ConversationController.getOrCreateAndWait(
|
||||
UUID.generate().toString(),
|
||||
'private'
|
||||
)
|
||||
).id,
|
||||
type: 'incoming',
|
||||
source,
|
||||
attachments: [
|
||||
|
|
Loading…
Reference in a new issue