From c2e9ba37631ee9d52d163916bb03280d68a403b8 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Wed, 14 Nov 2018 18:06:13 +0100 Subject: [PATCH] implement reply-from-notification, closes #126 --- .../notifications/RemoteReplyReceiver.java | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java b/src/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java index 55d3deeca..3fb361884 100644 --- a/src/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java +++ b/src/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java @@ -25,6 +25,8 @@ import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.RemoteInput; +import org.thoughtcrime.securesms.connect.ApplicationDcContext; +import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo; @@ -50,7 +52,6 @@ public class RemoteReplyReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { if (!REPLY_ACTION.equals(intent.getAction())) return; - // todo: rework to DeltaChat code. Bundle remoteInput = RemoteInput.getResultsFromIntent(intent); if (remoteInput == null) return; @@ -62,24 +63,11 @@ public class RemoteReplyReceiver extends BroadcastReceiver { new AsyncTask() { @Override protected Void doInBackground(Void... params) { - long threadId; - Recipient recipient = Recipient.from(context, address, false); - int subscriptionId = recipient.getDefaultSubscriptionId().or(-1); - long expiresIn = recipient.getExpireMessages() * 1000L; - - if (recipient.isGroupRecipient()) { - OutgoingMediaMessage reply = new OutgoingMediaMessage(recipient, responseText.toString(), new LinkedList<>(), System.currentTimeMillis(), subscriptionId, expiresIn, 0, null, Collections.emptyList()); - threadId = MessageSender.send(context, reply, -1, false, null); - } else { - OutgoingTextMessage reply = new OutgoingTextMessage(recipient, responseText.toString(), expiresIn, subscriptionId); - threadId = MessageSender.send(context, reply, -1, false, null); - } - - List messageIds = DatabaseFactory.getThreadDatabase(context).setRead(threadId, true); + ApplicationDcContext dcContext = DcHelper.getContext(context); + dcContext.sendTextMsg(address.getDcChatId(), responseText.toString()); MessageNotifier.updateNotification(context); - MarkReadReceiver.process(context, messageIds); return null; }