From 6756b04da9ae49c4b6ff89a39d607f6c4efc1ef8 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 23 Jun 2026 18:30:21 +0200 Subject: [PATCH 1/4] properly handle messages with ~overrideSenderName --- .../securesms/notifications/NotificationCenter.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java index d5dea0ac4..44843c058 100644 --- a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java +++ b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java @@ -429,6 +429,11 @@ public class NotificationCenter { DcContact sender = dcContext.getContact(dcMsg.getFromId()); String senderName = dcMsg.getSenderName(sender); + String contactId = String.valueOf(sender.getId()); + if (dcMsg.getOverrideSenderName() != null) { + // msg has ~overrideSenderName, we need to treat it as a separate Person with different ID + contactId += "-" + senderName; + } String text = privacy.isDisplayMessage() ? dcMsg.getSummarytext(2000) @@ -444,7 +449,7 @@ public class NotificationCenter { .setName(senderName) .setIcon(getAvatarIcon(sender)) .setBot(sender.isBot()) - .setKey(accountId + "-" + sender.getId()) + .setKey(accountId + "-" + contactId) .build(), text); From 50037d5232cd7062ace84de2d04619fc83e9a308 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 23 Jun 2026 18:42:05 +0200 Subject: [PATCH 2/4] fix code format --- .../securesms/notifications/NotificationCenter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java index 44843c058..8c3628c38 100644 --- a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java +++ b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java @@ -431,8 +431,8 @@ public class NotificationCenter { String senderName = dcMsg.getSenderName(sender); String contactId = String.valueOf(sender.getId()); if (dcMsg.getOverrideSenderName() != null) { - // msg has ~overrideSenderName, we need to treat it as a separate Person with different ID - contactId += "-" + senderName; + // we need to treat the contact as a separate Person with different ID + contactId += "-" + senderName; } String text = privacy.isDisplayMessage() From bedaa2c2877f09d75abec82051da956ab8846ba1 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 23 Jun 2026 18:43:22 +0200 Subject: [PATCH 3/4] tweak comment --- .../thoughtcrime/securesms/notifications/NotificationCenter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java index 8c3628c38..f53fb91ac 100644 --- a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java +++ b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java @@ -432,6 +432,7 @@ public class NotificationCenter { String contactId = String.valueOf(sender.getId()); if (dcMsg.getOverrideSenderName() != null) { // we need to treat the contact as a separate Person with different ID + // otherwise the name will be overwritten by future notifications contactId += "-" + senderName; } String text = From 877f9911317016b904ec7c6c829201d8265482d7 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 23 Jun 2026 21:33:30 +0200 Subject: [PATCH 4/4] improve code and fix notifyWebxdc and notifyReaction --- .../notifications/NotificationCenter.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java index f53fb91ac..ca73f5ac5 100644 --- a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java +++ b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java @@ -429,11 +429,11 @@ public class NotificationCenter { DcContact sender = dcContext.getContact(dcMsg.getFromId()); String senderName = dcMsg.getSenderName(sender); - String contactId = String.valueOf(sender.getId()); + String personId = accountId + "-" + dcMsg.getFromId(); if (dcMsg.getOverrideSenderName() != null) { // we need to treat the contact as a separate Person with different ID // otherwise the name will be overwritten by future notifications - contactId += "-" + senderName; + personId += "-" + senderName; } String text = privacy.isDisplayMessage() @@ -450,7 +450,7 @@ public class NotificationCenter { .setName(senderName) .setIcon(getAvatarIcon(sender)) .setBot(sender.isBot()) - .setKey(accountId + "-" + contactId) + .setKey(personId) .build(), text); @@ -478,12 +478,11 @@ public class NotificationCenter { // just do nothing. } - DcContact sender = dcContext.getContact(contactId); - String senderName = dcMsg.getSenderName(sender); + DcContact contact = dcContext.getContact(contactId); String text = context.getString( R.string.reaction_by_other, - sender.getDisplayName(), + contact.getDisplayName(), reaction, dcMsg.getSummarytext(2000)); DcChat dcChat = dcContext.getChat(dcMsg.getChatId()); @@ -491,10 +490,10 @@ public class NotificationCenter { NotifData notifData = new NotifData( new Person.Builder() - .setName(senderName) - .setIcon(getAvatarIcon(sender)) - .setBot(sender.isBot()) - .setKey(accountId + "-" + sender.getId()) + .setName(contact.getDisplayName()) + .setIcon(getAvatarIcon(contact)) + .setBot(contact.isBot()) + .setKey(accountId + "-" + contactId) .build(), text); @@ -545,10 +544,10 @@ public class NotificationCenter { notifData = new NotifData( new Person.Builder() - .setName(dcMsg.getSenderName(sender)) + .setName(sender.getDisplayName()) .setIcon(getAvatarIcon(sender)) .setBot(sender.isBot()) - .setKey(dcContext.getAccountId() + "-" + sender.getId()) + .setKey(accountId + "-" + contactId) .build(), tickerLine); }