mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 12:38:33 +00:00
Ignore inbound SMS/MMS from yourself.
This commit is contained in:
@@ -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<Long, Long> 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;
|
||||
}
|
||||
|
||||
@@ -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> 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!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user