From 1a41e6887171bfb93f2b09d80b09a403ac34d635 Mon Sep 17 00:00:00 2001 From: luksencrypted <191204888+luksencrypted@users.noreply.github.com> Date: Sat, 15 Feb 2025 18:19:16 +0200 Subject: [PATCH] Update Messaging.kt --- .../fossify/messages/messaging/Messaging.kt | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/messages/messaging/Messaging.kt b/app/src/main/kotlin/org/fossify/messages/messaging/Messaging.kt index 99ea2ec5..231bc26b 100644 --- a/app/src/main/kotlin/org/fossify/messages/messaging/Messaging.kt +++ b/app/src/main/kotlin/org/fossify/messages/messaging/Messaging.kt @@ -15,7 +15,6 @@ import org.fossify.messages.messaging.SmsException.Companion.ERROR_PERSISTING_ME import org.fossify.messages.messaging.SmsException.Companion.ERROR_SENDING_MESSAGE import org.fossify.messages.models.Attachment -@Deprecated("TODO: Move/rewrite messaging config code into the app.") fun Context.getSendMessageSettings(): Settings { val settings = Settings() settings.useSystemSending = true @@ -32,6 +31,23 @@ fun Context.isLongMmsMessage(text: String, settings: Settings = getSendMessageSe return numPages > settings.sendLongAsMmsAfter && settings.sendLongAsMms } +fun Context.sendMmsMessagesSeparately( + text: String, + addresses: List, + attachments: List, + settings: Settings, + messageId: Long? +) { + val messagingUtils = messagingUtils + val lastIndex = attachments.lastIndex + if (attachments.size > 1) { + for (i in 0 until lastIndex) { + messagingUtils.sendMmsMessage("", addresses, attachments[i], settings, messageId) + } + } + messagingUtils.sendMmsMessage(text, addresses, attachments[lastIndex], settings, messageId) +} + /** Sends the message using the in-app SmsManager API wrappers if it's an SMS or using android-smsmms for MMS. */ fun Context.sendMessageCompat( text: String, @@ -49,18 +65,8 @@ fun Context.sendMessageCompat( val isMms = attachments.isNotEmpty() || isLongMmsMessage(text, settings) || addresses.size > 1 && settings.group if (isMms) { - // we send all MMS attachments separately to reduces the chances of hitting provider MMS limit. if (attachments.isNotEmpty()) { - val lastIndex = attachments.lastIndex - if (attachments.size > 1) { - for (i in 0 until lastIndex) { - val attachment = attachments[i] - messagingUtils.sendMmsMessage("", addresses, attachment, settings, messageId) - } - } - - val lastAttachment = attachments[lastIndex] - messagingUtils.sendMmsMessage(text, addresses, lastAttachment, settings, messageId) + sendMmsMessagesSeparately(text, addresses, attachments, settings, messageId) } else { messagingUtils.sendMmsMessage(text, addresses, null, settings, messageId) } @@ -79,12 +85,10 @@ fun Context.sendMessageCompat( id = R.string.empty_destination_address, length = LENGTH_LONG ) - ERROR_PERSISTING_MESSAGE -> toast( id = R.string.unable_to_save_message, length = LENGTH_LONG ) - ERROR_SENDING_MESSAGE -> toast( msg = getString(R.string.unknown_error_occurred_sending_message, e.errorCode), length = LENGTH_LONG