diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 45af537578..5a117b3776 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -3646,14 +3646,14 @@ public class ConversationActivity extends PassphraseRequiredActivity @Override public void onMessageWithErrorClicked(@NonNull MessageRecord messageRecord) { - if (messageRecord.hasFailedWithNetworkFailures()) { + if (messageRecord.isIdentityMismatchFailure()) { + SafetyNumberChangeDialog.show(this, messageRecord); + } else if (messageRecord.hasFailedWithNetworkFailures()) { new AlertDialog.Builder(this) .setMessage(R.string.conversation_activity__message_could_not_be_sent) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.conversation_activity__send, (dialog, which) -> MessageSender.resend(this, messageRecord)) .show(); - } else if (messageRecord.isIdentityMismatchFailure()) { - SafetyNumberChangeDialog.show(this, messageRecord); } else { startActivity(MessageDetailsActivity.getIntentForMessageDetails(this, messageRecord, messageRecord.getRecipient().getId(), messageRecord.getThreadId())); } diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index a29fee16eb..73fc48e5b4 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -1745,12 +1745,12 @@ public class SignalServiceMessageSender { .filter(r -> !r.isSuccess()) .collect(Collectors.toList()); - Set failedAddresses = trueFailures.stream() - .map(SendMessageResult::getAddress) - .collect(Collectors.toSet()); + Set failedAddresses = trueFailures.stream() + .map(result -> result.getAddress().getAci()) + .collect(Collectors.toSet()); List fakeNetworkFailures = recipients.stream() - .filter(r -> !failedAddresses.contains(r)) + .filter(r -> !failedAddresses.contains(r.getAci())) .map(SendMessageResult::networkFailure) .collect(Collectors.toList());