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 fac7604e..c536b538 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -901,7 +901,11 @@ class ThreadActivity : SimpleActivity() { } thread_attachments_recyclerview.beVisible() - val mimeType = contentResolver.getType(uri).orEmpty() + val mimeType = contentResolver.getType(uri) + if (mimeType == null) { + toast(R.string.unknown_error_occurred) + return + } val attachment = AttachmentSelection( id = id, uri = uri, diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt index 953564ba..4b0ebc34 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt @@ -43,3 +43,7 @@ fun String.isPdfMimeType(): Boolean { fun String.isZipMimeType(): Boolean { return lowercase().endsWith("zip") } + +fun String.isPlainTextMimeType(): Boolean { + return lowercase().startsWith("text") +} diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Messaging.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Messaging.kt index 8e68d533..6935744d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Messaging.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Messaging.kt @@ -14,6 +14,7 @@ import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.helpers.isMarshmallowPlus import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.extensions.config +import com.simplemobiletools.smsmessenger.extensions.isPlainTextMimeType import com.simplemobiletools.smsmessenger.models.Attachment import com.simplemobiletools.smsmessenger.models.Message import com.simplemobiletools.smsmessenger.receivers.ScheduledMessageReceiver @@ -49,7 +50,11 @@ fun Context.sendMessage(text: String, addresses: List, subscriptionId: I val uri = attachment.getUri() contentResolver.openInputStream(uri)?.use { val bytes = it.readBytes() - val mimeType = contentResolver.getType(uri) ?: return@use + val mimeType = if (attachment.mimetype.isPlainTextMimeType()) { + "application/txt" + } else { + attachment.mimetype + } val name = attachment.filename message.addMedia(bytes, mimeType, name, name) }