]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/dbus/DbusRegistrationManagerImpl.java
Extend getUserStatus command for usernames
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusRegistrationManagerImpl.java
1 package org.asamk.signal.dbus;
2
3 import org.asamk.SignalControl;
4 import org.asamk.signal.manager.RegistrationManager;
5 import org.asamk.signal.manager.api.CaptchaRequiredException;
6 import org.asamk.signal.manager.api.IncorrectPinException;
7 import org.asamk.signal.manager.api.PinLockedException;
8 import org.freedesktop.dbus.connections.impl.DBusConnection;
9
10 import java.io.IOException;
11
12 /**
13 * This class implements the RegistrationManager interface using the DBus Signal interface, where possible.
14 * It's used for the signal-cli dbus client mode (--dbus, --dbus-system)
15 */
16 public class DbusRegistrationManagerImpl implements RegistrationManager {
17
18 private final String number;
19 private final SignalControl signalControl;
20 private final DBusConnection connection;
21
22 public DbusRegistrationManagerImpl(String number, final SignalControl signalControl, DBusConnection connection) {
23 this.number = number;
24 this.signalControl = signalControl;
25 this.connection = connection;
26 }
27
28 @Override
29 public void register(
30 final boolean voiceVerification, final String captcha, final boolean forceRegister
31 ) throws IOException, CaptchaRequiredException {
32 if (forceRegister) {
33 throw new UnsupportedOperationException();
34 }
35 if (captcha == null) {
36 signalControl.register(number, voiceVerification);
37 } else {
38 signalControl.registerWithCaptcha(number, voiceVerification, captcha);
39 }
40 }
41
42 @Override
43 public void verifyAccount(
44 final String verificationCode, final String pin
45 ) throws IOException, PinLockedException, IncorrectPinException {
46 if (pin == null) {
47 signalControl.verify(number, verificationCode);
48 } else {
49 signalControl.verifyWithPin(number, verificationCode, pin);
50 }
51 }
52
53 @Override
54 public void deleteLocalAccountData() throws IOException {
55 throw new UnsupportedOperationException();
56 }
57
58 @Override
59 public boolean isRegistered() {
60 throw new UnsupportedOperationException();
61 }
62
63 @Override
64 public void close() {
65 }
66 }