mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
Persist sub id when sending sms messages
This commit is contained in:
@ -1116,7 +1116,6 @@ class ThreadActivity : SimpleActivity() {
|
|||||||
val messageIds = messages.map { it.id }
|
val messageIds = messages.map { it.id }
|
||||||
val message = getMessages(threadId, getImageResolutions = true, limit = 1).firstOrNull { it.id !in messageIds }
|
val message = getMessages(threadId, getImageResolutions = true, limit = 1).firstOrNull { it.id !in messageIds }
|
||||||
if (message != null) {
|
if (message != null) {
|
||||||
maybeUpdateMessageSubId(message)
|
|
||||||
insertOrUpdateMessage(message)
|
insertOrUpdateMessage(message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1306,7 +1305,6 @@ class ThreadActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
messages.filter { !it.isScheduled && !it.isReceivedMessage() && it.id > lastMaxId }.forEach { latestMessage ->
|
messages.filter { !it.isScheduled && !it.isReceivedMessage() && it.id > lastMaxId }.forEach { latestMessage ->
|
||||||
maybeUpdateMessageSubId(latestMessage)
|
|
||||||
messagesDB.insertOrIgnore(latestMessage)
|
messagesDB.insertOrIgnore(latestMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1316,18 +1314,6 @@ class ThreadActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("MissingPermission")
|
|
||||||
private fun maybeUpdateMessageSubId(message: Message) {
|
|
||||||
// subscriptionIds seem to be not filled out at sending with multiple SIM cards, so fill it manually
|
|
||||||
if ((subscriptionManagerCompat().activeSubscriptionInfoList?.size ?: 0) > 1) {
|
|
||||||
val subscriptionId = availableSIMCards.getOrNull(currentSIMCardIndex)?.subscriptionId
|
|
||||||
if (subscriptionId != null) {
|
|
||||||
updateMessageSubscriptionId(message.id, subscriptionId)
|
|
||||||
message.subscriptionId = subscriptionId
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun isMmsMessage(text: String): Boolean {
|
private fun isMmsMessage(text: String): Boolean {
|
||||||
val isGroupMms = participants.size > 1 && config.sendGroupMessageMMS
|
val isGroupMms = participants.size > 1 && config.sendGroupMessageMMS
|
||||||
val isLongMmsMessage = isLongMmsMessage(text) && config.sendLongMessageMMS
|
val isLongMmsMessage = isLongMmsMessage(text) && config.sendLongMessageMMS
|
||||||
|
@ -676,16 +676,6 @@ fun Context.updateMessageStatus(id: Long, status: Int) {
|
|||||||
contentResolver.update(uri, contentValues, selection, selectionArgs)
|
contentResolver.update(uri, contentValues, selection, selectionArgs)
|
||||||
}
|
}
|
||||||
|
|
||||||
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<Conversation>) {
|
fun Context.updateUnreadCountBadge(conversations: List<Conversation>) {
|
||||||
val unreadCount = conversations.count { !it.read }
|
val unreadCount = conversations.count { !it.read }
|
||||||
if (unreadCount == 0) {
|
if (unreadCount == 0) {
|
||||||
|
Reference in New Issue
Block a user