From fcb5cbb74d75b30af1b4a3c07c7a117a2c87d3f6 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Fri, 26 Jul 2019 16:16:40 +1000 Subject: [PATCH] Fix threading issue --- res/values/strings.xml | 2 +- .../securesms/jobs/PushDecryptJob.java | 24 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 642ba3ec5d..de7d972d0f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1558,7 +1558,7 @@ New Conversation Public Key - Enter the public key of the person you\'d like to securely message. They can share their public key with you by going into Loki Messenger\'s in-app settings and clicking "Share Public Key". + Enter the public key of the person you\'d like to securely message. They can share their public key with you by going into Loki Messenger\'s in-app settings and clicking \"Share Public Key\". Next Invalid Public Key diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index 79fb5baf8d..840048e3e8 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -5,6 +5,8 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Build; +import android.os.Handler; +import android.os.Looper; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; @@ -911,14 +913,20 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } private void sendBackgroundMessage(String contactHexEncodedPublicKey) { - SignalServiceMessageSender messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender(); - SignalServiceAddress address = new SignalServiceAddress(contactHexEncodedPublicKey); - SignalServiceDataMessage message = new SignalServiceDataMessage(System.currentTimeMillis(), ""); - try { - messageSender.sendMessage(0, address, Optional.absent(), message); // The message ID doesn't matter - } catch (Exception e) { - Log.d("Loki", "Failed to send background message to: " + contactHexEncodedPublicKey + "."); - } + new Handler(Looper.getMainLooper()).post(new Runnable() { + + @Override + public void run() { + SignalServiceMessageSender messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender(); + SignalServiceAddress address = new SignalServiceAddress(contactHexEncodedPublicKey); + SignalServiceDataMessage message = new SignalServiceDataMessage(System.currentTimeMillis(), ""); + try { + messageSender.sendMessage(0, address, Optional.absent(), message); // The message ID doesn't matter + } catch (Exception e) { + Log.d("Loki", "Failed to send background message to: " + contactHexEncodedPublicKey + "."); + } + } + }); } private long handleSynchronizeSentTextMessage(@NonNull SentTranscriptMessage message)