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
.signal
.libsignal
.protocol
.IdentityKey
;
8 public record SendMessageResult(
9 RecipientAddress address
,
11 boolean isNetworkFailure
,
12 boolean isUnregisteredFailure
,
13 boolean isIdentityFailure
,
14 boolean isRateLimitFailure
,
15 ProofRequiredException proofRequiredFailure
18 public static SendMessageResult
success(RecipientAddress address
) {
19 return new SendMessageResult(address
, true, false, false, false, false, null);
22 public static SendMessageResult
networkFailure(RecipientAddress address
) {
23 return new SendMessageResult(address
, false, true, false, false, false, null);
26 public static SendMessageResult
unregisteredFailure(RecipientAddress address
) {
27 return new SendMessageResult(address
, false, false, true, false, false, null);
30 public static SendMessageResult
identityFailure(RecipientAddress address
, IdentityKey identityKey
) {
31 return new SendMessageResult(address
, false, false, false, true, false, null);
34 public static SendMessageResult
proofRequiredFailure(
35 RecipientAddress address
, ProofRequiredException proofRequiredException
37 return new SendMessageResult(address
, false, true, false, false, false, proofRequiredException
);
40 public static SendMessageResult
from(
41 final org
.whispersystems
.signalservice
.api
.messages
.SendMessageResult sendMessageResult
,
42 RecipientResolver recipientResolver
,
43 RecipientAddressResolver addressResolver
45 return new SendMessageResult(addressResolver
.resolveRecipientAddress(recipientResolver
.resolveRecipient(
46 sendMessageResult
.getAddress())),
47 sendMessageResult
.isSuccess(),
48 sendMessageResult
.isNetworkFailure(),
49 sendMessageResult
.isUnregisteredFailure(),
50 sendMessageResult
.getIdentityFailure() != null,
51 sendMessageResult
.getRateLimitFailure() != null,
52 sendMessageResult
.getProofRequiredFailure() == null
54 : new ProofRequiredException(sendMessageResult
.getProofRequiredFailure()));