]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/util/NumberVerificationUtils.java
Show information when requesting voice verification without SMS verification
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / util / NumberVerificationUtils.java
index 62474e665460dec7227c800c42bcf8f07e3e49f6..9eb01cdbdbdcf3d859a37639d11c05aff8d4325f 100644 (file)
@@ -6,6 +6,7 @@ import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException;
 import org.asamk.signal.manager.api.Pair;
 import org.asamk.signal.manager.api.PinLockedException;
 import org.asamk.signal.manager.api.RateLimitException;
+import org.asamk.signal.manager.api.VerificationMethoNotAvailableException;
 import org.asamk.signal.manager.helper.PinHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -26,7 +27,7 @@ import java.util.function.Consumer;
 
 public class NumberVerificationUtils {
 
-    private final static Logger logger = LoggerFactory.getLogger(NumberVerificationUtils.class);
+    private static final Logger logger = LoggerFactory.getLogger(NumberVerificationUtils.class);
 
     public static String handleVerificationSession(
             SignalServiceAccountManager accountManager,
@@ -34,7 +35,7 @@ public class NumberVerificationUtils {
             Consumer<String> sessionIdSaver,
             boolean voiceVerification,
             String captcha
-    ) throws CaptchaRequiredException, IOException, RateLimitException {
+    ) throws CaptchaRequiredException, IOException, RateLimitException, VerificationMethoNotAvailableException {
         RegistrationSessionMetadataResponse sessionResponse;
         try {
             sessionResponse = getValidSession(accountManager, sessionId);
@@ -61,7 +62,9 @@ public class NumberVerificationUtils {
         final var nextAttempt = voiceVerification
                 ? sessionResponse.getBody().getNextCall()
                 : sessionResponse.getBody().getNextSms();
-        if (nextAttempt != null && nextAttempt > 0) {
+        if (nextAttempt == null) {
+            throw new VerificationMethoNotAvailableException();
+        } else if (nextAttempt > 0) {
             final var timestamp = sessionResponse.getHeaders().getTimestamp() + nextAttempt * 1000;
             throw new RateLimitException(timestamp);
         }