Improve dbus register error message if called with invalid number

This commit is contained in:
AsamK 2021-08-30 13:33:54 +02:00
parent 8bcd8d87d2
commit 5743cf4455
3 changed files with 8 additions and 2 deletions

View file

@ -21,6 +21,7 @@ import org.asamk.signal.manager.storage.protocol.SignalProtocolStore;
import org.asamk.signal.manager.storage.recipients.Contact;
import org.asamk.signal.manager.storage.recipients.LegacyRecipientStore;
import org.asamk.signal.manager.storage.recipients.Profile;
import org.asamk.signal.manager.storage.recipients.RecipientAddress;
import org.asamk.signal.manager.storage.recipients.RecipientId;
import org.asamk.signal.manager.storage.recipients.RecipientStore;
import org.asamk.signal.manager.storage.sessions.SessionStore;
@ -789,7 +790,7 @@ public class SignalAccount implements Closeable {
}
public RecipientId getSelfRecipientId() {
return recipientStore.resolveRecipientTrusted(getSelfAddress());
return recipientStore.resolveRecipientTrusted(new RecipientAddress(uuid, username));
}
public String getEncryptedDeviceName() {

View file

@ -5,7 +5,7 @@ public class BaseConfig {
public final static String PROJECT_NAME = BaseConfig.class.getPackage().getImplementationTitle();
public final static String PROJECT_VERSION = BaseConfig.class.getPackage().getImplementationVersion();
final static String USER_AGENT_SIGNAL_ANDROID = "Signal-Android/5.12.4";
final static String USER_AGENT_SIGNAL_ANDROID = "Signal-Android/5.22.3";
final static String USER_AGENT_SIGNAL_CLI = PROJECT_NAME == null
? "signal-cli"
: PROJECT_NAME + "/" + PROJECT_VERSION;

View 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) {