1 package org
.asamk
.signal
.manager
.api
;
3 import org
.asamk
.signal
.manager
.helper
.RecipientAddressResolver
;
4 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
;
5 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientResolver
;
6 import org
.whispersystems
.libsignal
.IdentityKey
;
8 public record SendMessageResult(
9 RecipientAddress address
,
11 boolean isNetworkFailure
,
12 boolean isUnregisteredFailure
,
13 boolean isIdentityFailure
,
14 ProofRequiredException proofRequiredFailure
17 public static SendMessageResult
success(RecipientAddress address
) {
18 return new SendMessageResult(address
, true, false, false, false, null);
21 public static SendMessageResult
networkFailure(RecipientAddress address
) {
22 return new SendMessageResult(address
, false, true, false, false, null);
25 public static SendMessageResult
unregisteredFailure(RecipientAddress address
) {
26 return new SendMessageResult(address
, false, false, true, false, null);
29 public static SendMessageResult
identityFailure(RecipientAddress address
, IdentityKey identityKey
) {
30 return new SendMessageResult(address
, false, false, false, true, null);
33 public static SendMessageResult
proofRequiredFailure(
34 RecipientAddress address
, ProofRequiredException proofRequiredException
36 return new SendMessageResult(address
, false, true, false, false, proofRequiredException
);
39 public static SendMessageResult
from(
40 final org
.whispersystems
.signalservice
.api
.messages
.SendMessageResult sendMessageResult
,
41 RecipientResolver recipientResolver
,
42 RecipientAddressResolver addressResolver
44 return new SendMessageResult(addressResolver
.resolveRecipientAddress(recipientResolver
.resolveRecipient(
45 sendMessageResult
.getAddress())),
46 sendMessageResult
.isSuccess(),
47 sendMessageResult
.isNetworkFailure(),
48 sendMessageResult
.isUnregisteredFailure(),
49 sendMessageResult
.getIdentityFailure() != null,
50 sendMessageResult
.getProofRequiredFailure() == null
52 : new ProofRequiredException(sendMessageResult
.getProofRequiredFailure()));
55 public record IdentityFailure(IdentityKey identityKey
) {}