import org.asamk.signal.manager.helper.RecipientAddressResolver;
import org.asamk.signal.manager.storage.recipients.RecipientResolver;
-import org.signal.libsignal.protocol.IdentityKey;
public record SendMessageResult(
RecipientAddress address,
boolean isUnregisteredFailure,
boolean isIdentityFailure,
boolean isRateLimitFailure,
- ProofRequiredException proofRequiredFailure
+ ProofRequiredException proofRequiredFailure,
+ boolean isInvalidPreKeyFailure
) {
- public static SendMessageResult success(RecipientAddress address) {
- return new SendMessageResult(address, true, false, false, false, false, null);
- }
-
- public static SendMessageResult networkFailure(RecipientAddress address) {
- return new SendMessageResult(address, false, true, false, false, false, null);
- }
-
public static SendMessageResult unregisteredFailure(RecipientAddress address) {
- return new SendMessageResult(address, false, false, true, false, false, null);
- }
-
- public static SendMessageResult identityFailure(RecipientAddress address, IdentityKey identityKey) {
- return new SendMessageResult(address, false, false, false, true, false, null);
- }
-
- public static SendMessageResult proofRequiredFailure(
- RecipientAddress address, ProofRequiredException proofRequiredException
- ) {
- return new SendMessageResult(address, false, true, false, false, false, proofRequiredException);
+ return new SendMessageResult(address, false, false, true, false, false, null, false);
}
public static SendMessageResult from(
sendMessageResult.getRateLimitFailure() != null || sendMessageResult.getProofRequiredFailure() != null,
sendMessageResult.getProofRequiredFailure() == null
? null
- : new ProofRequiredException(sendMessageResult.getProofRequiredFailure()));
+ : new ProofRequiredException(sendMessageResult.getProofRequiredFailure()),
+ sendMessageResult.isInvalidPreKeyFailure());
}
}