Fix group send with sender key failure due to mistmatch identity.
This commit is contained in:
parent
c2f953b097
commit
791c1ee8dd
2 changed files with 7 additions and 7 deletions
|
@ -3646,14 +3646,14 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessageWithErrorClicked(@NonNull MessageRecord messageRecord) {
|
public void onMessageWithErrorClicked(@NonNull MessageRecord messageRecord) {
|
||||||
if (messageRecord.hasFailedWithNetworkFailures()) {
|
if (messageRecord.isIdentityMismatchFailure()) {
|
||||||
|
SafetyNumberChangeDialog.show(this, messageRecord);
|
||||||
|
} else if (messageRecord.hasFailedWithNetworkFailures()) {
|
||||||
new AlertDialog.Builder(this)
|
new AlertDialog.Builder(this)
|
||||||
.setMessage(R.string.conversation_activity__message_could_not_be_sent)
|
.setMessage(R.string.conversation_activity__message_could_not_be_sent)
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
.setPositiveButton(R.string.conversation_activity__send, (dialog, which) -> MessageSender.resend(this, messageRecord))
|
.setPositiveButton(R.string.conversation_activity__send, (dialog, which) -> MessageSender.resend(this, messageRecord))
|
||||||
.show();
|
.show();
|
||||||
} else if (messageRecord.isIdentityMismatchFailure()) {
|
|
||||||
SafetyNumberChangeDialog.show(this, messageRecord);
|
|
||||||
} else {
|
} else {
|
||||||
startActivity(MessageDetailsActivity.getIntentForMessageDetails(this, messageRecord, messageRecord.getRecipient().getId(), messageRecord.getThreadId()));
|
startActivity(MessageDetailsActivity.getIntentForMessageDetails(this, messageRecord, messageRecord.getRecipient().getId(), messageRecord.getThreadId()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1745,12 +1745,12 @@ public class SignalServiceMessageSender {
|
||||||
.filter(r -> !r.isSuccess())
|
.filter(r -> !r.isSuccess())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
Set<SignalServiceAddress> failedAddresses = trueFailures.stream()
|
Set<ACI> failedAddresses = trueFailures.stream()
|
||||||
.map(SendMessageResult::getAddress)
|
.map(result -> result.getAddress().getAci())
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
List<SendMessageResult> fakeNetworkFailures = recipients.stream()
|
List<SendMessageResult> fakeNetworkFailures = recipients.stream()
|
||||||
.filter(r -> !failedAddresses.contains(r))
|
.filter(r -> !failedAddresses.contains(r.getAci()))
|
||||||
.map(SendMessageResult::networkFailure)
|
.map(SendMessageResult::networkFailure)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue