]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalControlImpl.java
Implement viewedReceipt
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalControlImpl.java
index 35f530b0ea3c03a558d052a0f5b5e248bbdb8418..be628bde7ee00033cd274aebb8963ce9909e3dc3 100644 (file)
@@ -13,6 +13,7 @@ import org.whispersystems.libsignal.util.Pair;
 import org.whispersystems.signalservice.api.KeyBackupServicePinException;
 import org.whispersystems.signalservice.api.KeyBackupSystemNoDataException;
 import org.whispersystems.signalservice.api.push.exceptions.CaptchaRequiredException;
+import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
 
 import java.io.IOException;
 import java.net.URI;
@@ -99,6 +100,10 @@ public class DbusSignalControlImpl implements org.asamk.SignalControl {
     public void registerWithCaptcha(
             final String number, final boolean voiceVerification, final String captcha
     ) throws Error.Failure, Error.InvalidNumber {
+        if (!PhoneNumberFormatter.isValidNumber(number, null)) {
+            throw new SignalControl.Error.InvalidNumber(
+                    "Invalid username (phone number), make sure you include the country code.");
+        }
         try (final RegistrationManager registrationManager = c.getNewRegistrationManager(number)) {
             registrationManager.register(voiceVerification, captcha);
         } catch (CaptchaRequiredException e) {
@@ -155,7 +160,7 @@ public class DbusSignalControlImpl implements org.asamk.SignalControl {
         synchronized (receiveThreads) {
             return receiveThreads.stream()
                     .map(Pair::first)
-                    .map(Manager::getUsername)
+                    .map(Manager::getSelfNumber)
                     .map(u -> new DBusPath(DbusConfig.getObjectPath(u)))
                     .collect(Collectors.toList());
         }