@@ -23,6 +23,7 @@ import com.simplemobiletools.smsmessenger.R
2323import com.simplemobiletools.smsmessenger.activities.ThreadActivity
2424import com.simplemobiletools.smsmessenger.extensions.config
2525import com.simplemobiletools.smsmessenger.messaging.isShortCodeWithLetters
26+ import com.simplemobiletools.smsmessenger.receivers.DeleteSmsReceiver
2627import com.simplemobiletools.smsmessenger.receivers.DirectReplyReceiver
2728import com.simplemobiletools.smsmessenger.receivers.MarkAsReadReceiver
2829
@@ -35,7 +36,7 @@ class NotificationHelper(private val context: Context) {
3536 .build()
3637
3738 @SuppressLint(" NewApi" )
38- fun showMessageNotification (address : String , body : String , threadId : Long , bitmap : Bitmap ? , sender : String? , alertOnlyOnce : Boolean = false) {
39+ fun showMessageNotification (messageId : Long , address : String , body : String , threadId : Long , bitmap : Bitmap ? , sender : String? , alertOnlyOnce : Boolean = false) {
3940 maybeCreateChannel(name = context.getString(R .string.channel_received_sms))
4041
4142 val notificationId = threadId.hashCode()
@@ -52,8 +53,16 @@ class NotificationHelper(private val context: Context) {
5253 val markAsReadPendingIntent =
5354 PendingIntent .getBroadcast(context, notificationId, markAsReadIntent, PendingIntent .FLAG_UPDATE_CURRENT or PendingIntent .FLAG_MUTABLE )
5455
56+ val deleteSmsIntent = Intent (context, DeleteSmsReceiver ::class .java).apply {
57+ putExtra(THREAD_ID , threadId)
58+ putExtra(MESSAGE_ID , messageId)
59+ }
60+ val deleteSmsPendingIntent =
61+ PendingIntent .getBroadcast(context, notificationId, deleteSmsIntent, PendingIntent .FLAG_UPDATE_CURRENT or PendingIntent .FLAG_MUTABLE )
62+
5563 var replyAction: NotificationCompat .Action ? = null
56- if (isNougatPlus() && ! isShortCodeWithLetters(address)) {
64+ val isNoReplySms = isShortCodeWithLetters(address)
65+ if (isNougatPlus() && ! isNoReplySms) {
5766 val replyLabel = context.getString(R .string.reply)
5867 val remoteInput = RemoteInput .Builder (REPLY )
5968 .setLabel(replyLabel)
@@ -112,7 +121,10 @@ class NotificationHelper(private val context: Context) {
112121
113122 builder.addAction(R .drawable.ic_check_vector, context.getString(R .string.mark_as_read), markAsReadPendingIntent)
114123 .setChannelId(NOTIFICATION_CHANNEL )
115-
124+ if (isNoReplySms) {
125+ builder.addAction(R .drawable.ic_delete_vector, context.getString(R .string.delete), deleteSmsPendingIntent)
126+ .setChannelId(NOTIFICATION_CHANNEL )
127+ }
116128 notificationManager.notify(notificationId, builder.build())
117129 }
118130
0 commit comments