From d7571d237a73ab7be51bc665cf6b71e32aaf1585 Mon Sep 17 00:00:00 2001 From: Mikunj Date: Thu, 31 Oct 2019 12:12:20 +1100 Subject: [PATCH] Skip friend request handling if we received a group message. --- .../thoughtcrime/securesms/jobs/PushDecryptJob.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index 60c846da20..e7e893ba11 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -1080,7 +1080,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType { private void acceptFriendRequestIfNeeded(@NonNull SignalServiceEnvelope envelope, @NonNull SignalServiceContent content) { // If we get anything other than a friend request, we can assume that we have a session with the other user - if (envelope.isFriendRequest()) { return; } + if (envelope.isFriendRequest() || isGroupChatMessage(content)) { return; } becomeFriendsWithContact(content.getSender()); } @@ -1100,7 +1100,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } private void updateFriendRequestStatusIfNeeded(@NonNull SignalServiceEnvelope envelope, @NonNull SignalServiceContent content, @NonNull SignalServiceDataMessage message) { - if (!envelope.isFriendRequest()) { return; } + if (!envelope.isFriendRequest() || isGroupChatMessage(message)) { return; } // This handles the case where another user sends us a regular message without authorisation boolean shouldBecomeFriends = MultiDeviceUtilities.shouldAutomaticallyBecomeFriendsWithDevice(content.getSender(), context); if (shouldBecomeFriends) { @@ -1602,6 +1602,14 @@ public class PushDecryptJob extends BaseJob implements InjectableType { return false; } + private boolean isGroupChatMessage(SignalServiceContent content) { + return content.getDataMessage().isPresent() && isGroupChatMessage(content.getDataMessage().get()); + } + + private boolean isGroupChatMessage(SignalServiceDataMessage message) { + return message.isGroupUpdate(); + } + private void resetRecipientToPush(@NonNull Recipient recipient) { if (recipient.isForceSmsSelection()) { DatabaseFactory.getRecipientDatabase(context).setForceSmsSelection(recipient, false);