From e0787d7c83c359e80e1c636fc13ea6f47b36f915 Mon Sep 17 00:00:00 2001 From: Naveen Date: Mon, 21 Nov 2022 21:00:26 +0530 Subject: [PATCH 1/2] Persist sub id when sending sms messages --- .../smsmessenger/activities/ThreadActivity.kt | 14 -------------- .../smsmessenger/extensions/Context.kt | 10 ---------- 2 files changed, 24 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index f1a9d0d2..2a9bbb8d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -1116,7 +1116,6 @@ class ThreadActivity : SimpleActivity() { val messageIds = messages.map { it.id } val message = getMessages(threadId, getImageResolutions = true, limit = 1).firstOrNull { it.id !in messageIds } if (message != null) { - maybeUpdateMessageSubId(message) insertOrUpdateMessage(message) } } @@ -1306,7 +1305,6 @@ class ThreadActivity : SimpleActivity() { } messages.filter { !it.isScheduled && !it.isReceivedMessage() && it.id > lastMaxId }.forEach { latestMessage -> - maybeUpdateMessageSubId(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 { val isGroupMms = participants.size > 1 && config.sendGroupMessageMMS val isLongMmsMessage = isLongMmsMessage(text) && config.sendLongMessageMMS 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 28190c1f..df1b7c64 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -676,16 +676,6 @@ fun Context.updateMessageStatus(id: Long, status: Int) { 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) { val unreadCount = conversations.count { !it.read } if (unreadCount == 0) { From 48ebef6420ddca837684a8cb6d7d44f5e0089ba5 Mon Sep 17 00:00:00 2001 From: Naveen Date: Mon, 21 Nov 2022 23:25:18 +0530 Subject: [PATCH 2/2] Fix conversation duplication glitch --- .../com/simplemobiletools/smsmessenger/extensions/Context.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 df1b7c64..6458fd41 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -112,7 +112,7 @@ fun Context.getMessages( val thread = cursor.getLongValue(Sms.THREAD_ID) val subscriptionId = cursor.getIntValue(Sms.SUBSCRIPTION_ID) val status = cursor.getIntValue(Sms.STATUS) - val participants = senderNumber.split(getAddressSeparator().toRegex()).map { number -> + val participants = senderNumber.split(getAddressSeparator()).map { number -> val phoneNumber = PhoneNumber(number, 0, "", number) val participantPhoto = getNameAndPhotoFromPhoneNumber(number) SimpleContact(0, 0, participantPhoto.name, photoUri, arrayListOf(phoneNumber), ArrayList(), ArrayList())