From 49ad23b91e22757b17861ed59f6dd0c0589dfd32 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Wed, 10 Dec 2025 22:14:32 +0530 Subject: [PATCH] fix: properly block MMS messages from unknown numbers Refs: https://github.com/FossifyOrg/Messages/issues/610 --- CHANGELOG.md | 2 ++ .../fossify/messages/receivers/MmsReceiver.kt | 25 +++++++++---------- .../fossify/messages/receivers/SmsReceiver.kt | 1 + 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dbf4ddc0..85d2f3fb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed new conversation shortcut ([#416]) +- Fixed blocking MMS messages from unknown numbers ([#610]) ## [1.6.0] - 2025-10-29 ### Changed @@ -207,6 +208,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#562]: https://github.com/FossifyOrg/Messages/issues/562 [#574]: https://github.com/FossifyOrg/Messages/issues/574 [#600]: https://github.com/FossifyOrg/Messages/issues/600 +[#610]: https://github.com/FossifyOrg/Messages/issues/610 [Unreleased]: https://github.com/FossifyOrg/Messages/compare/1.6.0...HEAD [1.6.0]: https://github.com/FossifyOrg/Messages/compare/1.5.0...1.6.0 diff --git a/app/src/main/kotlin/org/fossify/messages/receivers/MmsReceiver.kt b/app/src/main/kotlin/org/fossify/messages/receivers/MmsReceiver.kt index a92d09366..59de89cc4 100644 --- a/app/src/main/kotlin/org/fossify/messages/receivers/MmsReceiver.kt +++ b/app/src/main/kotlin/org/fossify/messages/receivers/MmsReceiver.kt @@ -29,7 +29,17 @@ class MmsReceiver : MmsReceivedReceiver() { override fun isAddressBlocked(context: Context, address: String): Boolean { val normalizedAddress = address.normalizePhoneNumber() - return context.isNumberBlocked(normalizedAddress) + if (context.isNumberBlocked(normalizedAddress)) return true + if (context.baseConfig.blockUnknownNumbers) { + val privateCursor = context.getMyContactsCursor( + favoritesOnly = false, + withPhoneNumbersOnly = true + ) + val isKnownContact = SimpleContactsHelper(context).existsSync(address, privateCursor) + return !isKnownContact + } + + return false } override fun isContentBlocked(context: Context, content: String): Boolean { @@ -39,20 +49,9 @@ class MmsReceiver : MmsReceivedReceiver() { override fun onMessageReceived(context: Context, messageUri: Uri) { val mms = context.getLatestMMS() ?: return val address = mms.getSender()?.phoneNumbers?.first()?.normalizedNumber ?: "" - val size = context.resources.getDimension(R.dimen.notification_large_icon_size).toInt() - val privateCursor = context.getMyContactsCursor(false, true) ensureBackgroundThread { - if (context.baseConfig.blockUnknownNumbers) { - val simpleContactsHelper = SimpleContactsHelper(context) - simpleContactsHelper.exists(address, privateCursor) { exists -> - if (exists) { - handleMmsMessage(context, mms, size, address) - } - } - } else { - handleMmsMessage(context, mms, size, address) - } + handleMmsMessage(context, mms, size, address) } } diff --git a/app/src/main/kotlin/org/fossify/messages/receivers/SmsReceiver.kt b/app/src/main/kotlin/org/fossify/messages/receivers/SmsReceiver.kt index 81b7744c2..1c2f7eb55 100644 --- a/app/src/main/kotlin/org/fossify/messages/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/org/fossify/messages/receivers/SmsReceiver.kt @@ -53,6 +53,7 @@ class SmsReceiver : BroadcastReceiver() { } if (context.baseConfig.blockUnknownNumbers) { val simpleContactsHelper = SimpleContactsHelper(context) + // Maybe switch to existsSync()? No? simpleContactsHelper.exists(address, privateCursor) { exists -> if (exists) { handleMessage(context, address, subject, body, date, read, threadId, type, subscriptionId, status)