diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 814fde4a..cfc04a2b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -121,6 +121,12 @@
+
+
+
+
+
+
@@ -149,11 +155,6 @@
android:exported="true"
android:taskAffinity="com.klinker.android.messaging.MMS_RECEIVED" />
-
-
lastMaxId }.forEach {
- messagesDB.insertOrIgnore(it)
+ messages.filter { !it.isReceivedMessage() && it.id > lastMaxId }.forEach { latestMessage ->
+ // subscriptionIds seem to be not filled out at sending with multiple SIM cards, so fill it manually
+ if (SubscriptionManager.from(this).activeSubscriptionInfoList?.size ?: 0 > 1) {
+ val SIMId = availableSIMCards.getOrNull(currentSIMCardIndex)?.subscriptionId
+ if (SIMId != null) {
+ updateMessageSubscriptionId(latestMessage.id, SIMId)
+ latestMessage.subscriptionId = SIMId
+ }
+ }
+
+ messagesDB.insertOrIgnore(latestMessage)
}
setupAdapter()
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
index 0cd08cd6..1c1b1be5 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
@@ -554,6 +554,16 @@ fun Context.markThreadMessagesUnread(threadId: Long) {
}
}
+fun Context.updateMessageSubscriptionId(messageId: Long, subscriptionId: Int) {
+ val uri = Sms.CONTENT_URI
+ val contentValues = ContentValues().apply {
+ put(Sms.SUBSCRIPTION_ID, subscriptionId)
+ }
+ val selection = "${Sms._ID} = ?"
+ val selectionArgs = arrayOf(messageId.toString())
+ contentResolver.update(uri, contentValues, selection, selectionArgs)
+}
+
fun Context.updateUnreadCountBadge(conversations: List) {
val unreadCount = conversations.count { !it.read }
if (unreadCount == 0) {
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt
index a9580099..54d96d04 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt
@@ -19,7 +19,7 @@ data class Message(
@ColumnInfo(name = "attachment") val attachment: MessageAttachment?,
@ColumnInfo(name = "sender_name") var senderName: String,
@ColumnInfo(name = "sender_photo_uri") val senderPhotoUri: String,
- @ColumnInfo(name = "subscription_id") val subscriptionId: Int) : ThreadItem() {
+ @ColumnInfo(name = "subscription_id") var subscriptionId: Int) : ThreadItem() {
fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsSentReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsStatusSentReceiver.kt
similarity index 52%
rename from app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsSentReceiver.kt
rename to app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsStatusSentReceiver.kt
index 2321c414..a007865a 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsSentReceiver.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsStatusSentReceiver.kt
@@ -1,12 +1,13 @@
package com.simplemobiletools.smsmessenger.receivers
+import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
-import com.klinker.android.send_message.SentReceiver
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
-class SmsSentReceiver : SentReceiver() {
- override fun onMessageStatusUpdated(context: Context, intent: Intent, receiverResultCode: Int) {
+class MmsStatusSentReceiver : BroadcastReceiver() {
+
+ override fun onReceive(context: Context, intent: Intent) {
refreshMessages()
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt
new file mode 100644
index 00000000..fb87699d
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt
@@ -0,0 +1,13 @@
+package com.simplemobiletools.smsmessenger.receivers
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import com.simplemobiletools.smsmessenger.helpers.refreshMessages
+
+class SmsStatusDeliveredReceiver : BroadcastReceiver() {
+
+ override fun onReceive(context: Context, intent: Intent) {
+ refreshMessages()
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt
new file mode 100644
index 00000000..0b6931d4
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt
@@ -0,0 +1,13 @@
+package com.simplemobiletools.smsmessenger.receivers
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import com.simplemobiletools.smsmessenger.helpers.refreshMessages
+
+class SmsStatusSentReceiver : BroadcastReceiver() {
+
+ override fun onReceive(context: Context, intent: Intent) {
+ refreshMessages()
+ }
+}