From 9f4fcec98f48c3132b22224c8b97c2f056595b04 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 15 May 2020 09:24:08 +1000 Subject: [PATCH] Fix session request handling bug --- src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java | 2 +- .../securesms/loki/protocol/SessionManagementProtocol.kt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index e958b1b58f..1c832877f4 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -505,7 +505,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } if (threadId != null) { - SessionManagementProtocol.handleEndSessionMessage(context, content); + SessionManagementProtocol.handleEndSessionMessageIfNeeded(context, content); MessageNotifier.updateNotification(context, threadId); } } diff --git a/src/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt b/src/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt index 4c162db344..0e96f90c49 100644 --- a/src/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt +++ b/src/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt @@ -75,13 +75,15 @@ object SessionManagementProtocol { @JvmStatic fun handleSessionRequestIfNeeded(context: Context, content: SignalServiceContent) { + if (!content.dataMessage.isPresent || !content.dataMessage.get().isSessionRequest) { return } // Auto-accept all session requests val ephemeralMessage = EphemeralMessage.create(content.sender) ApplicationContext.getInstance(context).jobManager.add(PushEphemeralMessageSendJob(ephemeralMessage)) } @JvmStatic - fun handleEndSessionMessage(context: Context, content: SignalServiceContent) { + fun handleEndSessionMessageIfNeeded(context: Context, content: SignalServiceContent) { + if (!content.dataMessage.isPresent || !content.dataMessage.get().isEndSession) { return } // TODO: Notify the user val sessionStore = TextSecureSessionStore(context) val lokiThreadDB = DatabaseFactory.getLokiThreadDatabase(context)