diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsReceiveJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsReceiveJob.java index 0de143aa7..20adb1eec 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsReceiveJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsReceiveJob.java @@ -71,7 +71,11 @@ public class MmsReceiveJob extends BaseJob { Log.w(TAG, e); } - if (isNotification(pdu) && !isBlocked(pdu)) { + if (isNotification(pdu) && isBlocked(pdu)) { + Log.w(TAG, "Received an MMS from a blocked user. Ignoring."); + } else if (isNotification(pdu) && isSelf(pdu)) { + Log.w(TAG, "Received an MMS from ourselves! Ignoring."); + } else if (isNotification(pdu)) { MessageDatabase database = SignalDatabase.mms(); Pair messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu, subscriptionId); @@ -80,8 +84,8 @@ public class MmsReceiveJob extends BaseJob { ApplicationDependencies.getJobManager().add(new MmsDownloadJob(messageAndThreadId.first(), messageAndThreadId.second(), true)); - } else if (isNotification(pdu)) { - Log.w(TAG, "*** Received blocked MMS, ignoring..."); + } else { + Log.w(TAG, "Unable to process MMS."); } } @@ -104,6 +108,15 @@ public class MmsReceiveJob extends BaseJob { return false; } + private boolean isSelf(GenericPdu pdu) { + if (pdu.getFrom() != null && pdu.getFrom().getTextString() != null) { + Recipient recipients = Recipient.external(context, Util.toIsoString(pdu.getFrom().getTextString())); + return recipients.isSelf(); + } + + return false; + } + private boolean isNotification(GenericPdu pdu) { return pdu != null && pdu.getMessageType() == PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java index eea54d0cd..2ae8a21ad 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java @@ -117,16 +117,18 @@ public class SmsReceiveJob extends BaseJob { } } - if (message.isPresent() && !isBlocked(message.get())) { + if (message.isPresent() && SignalStore.account().getE164() != null && message.get().getSender().equals(Recipient.self().getId())) { + Log.w(TAG, "Received an SMS from ourselves! Ignoring."); + } else if (message.isPresent() && !isBlocked(message.get())) { Optional insertResult = storeMessage(message.get()); if (insertResult.isPresent()) { ApplicationDependencies.getMessageNotifier().updateNotification(context, insertResult.get().getThreadId()); } } else if (message.isPresent()) { - Log.w(TAG, "*** Received blocked SMS, ignoring..."); + Log.w(TAG, "Received an SMS from a blocked user. Ignoring."); } else { - Log.w(TAG, "*** Failed to assemble message fragments!"); + Log.w(TAG, "Failed to assemble message fragments!"); } }