From 27e3c883c3f80f969ec061db210726015c43867e Mon Sep 17 00:00:00 2001 From: Clark Date: Thu, 6 Apr 2023 11:46:55 -0400 Subject: [PATCH] Update notification on profile name fetch or change. --- .../securesms/jobs/RetrieveProfileJob.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java index 96c626d2a4..e0bcb3d094 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java @@ -34,6 +34,7 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.notifications.v2.ConversationId; import org.thoughtcrime.securesms.profiles.ProfileName; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -462,12 +463,12 @@ public class RetrieveProfileJob extends BaseJob { String remoteDisplayName = remoteProfileName.toString(); String localDisplayName = localProfileName.toString(); - if (!recipient.isBlocked() && - !recipient.isGroup() && - !recipient.isSelf() && - !localDisplayName.isEmpty() && - !remoteDisplayName.equals(localDisplayName)) - { + boolean writeChangeEvent = !recipient.isBlocked() && + !recipient.isGroup() && + !recipient.isSelf() && + !localDisplayName.isEmpty() && + !remoteDisplayName.equals(localDisplayName); + if (writeChangeEvent) { Log.i(TAG, "Writing a profile name change event for " + recipient.getId()); SignalDatabase.messages().insertProfileNameChangeMessages(recipient, remoteDisplayName, localDisplayName); } else { @@ -475,6 +476,13 @@ public class RetrieveProfileJob extends BaseJob { recipient.isBlocked(), recipient.isGroup(), recipient.isSelf(), localDisplayName.isEmpty(), !remoteDisplayName.equals(localDisplayName))); } + if (writeChangeEvent || localDisplayName.isEmpty()) { + Long threadId = SignalDatabase.threads().getThreadIdFor(recipient.getId()); + if (threadId != null) { + ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(threadId)); + } + } + return true; } } catch (InvalidCiphertextException e) {