Skip to content

Commit 6c9d25d

Browse files
committed
properly handle sending reply messages through the top notification
1 parent c73f1f2 commit 6c9d25d

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,14 @@ package com.simplemobiletools.smsmessenger.receivers
33
import android.content.BroadcastReceiver
44
import android.content.Context
55
import android.content.Intent
6-
import androidx.core.app.NotificationCompat
76
import androidx.core.app.RemoteInput
87
import com.klinker.android.send_message.Settings
98
import com.klinker.android.send_message.Transaction
109
import com.simplemobiletools.commons.extensions.notificationManager
1110
import com.simplemobiletools.commons.extensions.showErrorToast
1211
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
13-
import com.simplemobiletools.smsmessenger.R
1412
import com.simplemobiletools.smsmessenger.extensions.conversationsDB
1513
import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead
16-
import com.simplemobiletools.smsmessenger.helpers.NOTIFICATION_CHANNEL
1714
import com.simplemobiletools.smsmessenger.helpers.REPLY
1815
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
1916
import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER
@@ -26,22 +23,24 @@ class DirectReplyReceiver : BroadcastReceiver() {
2623

2724
val settings = Settings()
2825
settings.useSystemSending = true
26+
settings.deliveryReports = true
2927

3028
val transaction = Transaction(context, settings)
3129
val message = com.klinker.android.send_message.Message(msg, address)
3230

3331
try {
32+
val smsSentIntent = Intent(context, SmsStatusSentReceiver::class.java)
33+
val deliveredIntent = Intent(context, SmsStatusDeliveredReceiver::class.java)
34+
35+
transaction.setExplicitBroadcastForSentSms(smsSentIntent)
36+
transaction.setExplicitBroadcastForDeliveredSms(deliveredIntent)
37+
3438
transaction.sendNewMessage(message, threadId)
3539
} catch (e: Exception) {
3640
context.showErrorToast(e)
3741
}
3842

39-
val repliedNotification = NotificationCompat.Builder(context, NOTIFICATION_CHANNEL)
40-
.setSmallIcon(R.drawable.ic_messenger)
41-
.setContentText(msg)
42-
.build()
43-
44-
context.notificationManager.notify(threadId.hashCode(), repliedNotification)
43+
context.notificationManager.cancel(threadId.hashCode())
4544

4645
ensureBackgroundThread {
4746
context.markThreadMessagesRead(threadId)

app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class SmsStatusSentReceiver : SentReceiver() {
4141
} else {
4242
Telephony.Sms.MESSAGE_TYPE_OUTBOX
4343
}
44+
4445
context.updateMessageType(messageId, type)
4546
context.messagesDB.updateType(messageId, type)
4647
refreshMessages()

app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import android.net.Uri
66
import com.klinker.android.send_message.Settings
77
import com.klinker.android.send_message.Transaction
88
import com.simplemobiletools.smsmessenger.extensions.getThreadId
9+
import com.simplemobiletools.smsmessenger.receivers.SmsStatusDeliveredReceiver
10+
import com.simplemobiletools.smsmessenger.receivers.SmsStatusSentReceiver
911

1012
class HeadlessSmsSendService : Service() {
1113
override fun onBind(intent: Intent?) = null
@@ -20,8 +22,17 @@ class HeadlessSmsSendService : Service() {
2022
val text = intent.getStringExtra(Intent.EXTRA_TEXT)
2123
val settings = Settings()
2224
settings.useSystemSending = true
25+
settings.deliveryReports = true
26+
2327
val transaction = Transaction(this, settings)
2428
val message = com.klinker.android.send_message.Message(text, number)
29+
30+
val smsSentIntent = Intent(this, SmsStatusSentReceiver::class.java)
31+
val deliveredIntent = Intent(this, SmsStatusDeliveredReceiver::class.java)
32+
33+
transaction.setExplicitBroadcastForSentSms(smsSentIntent)
34+
transaction.setExplicitBroadcastForDeliveredSms(deliveredIntent)
35+
2536
transaction.sendNewMessage(message, getThreadId(number))
2637
} catch (ignored: Exception) {
2738
}

0 commit comments

Comments
 (0)