]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/dbus/DbusRegistrationManagerImpl.java
Update gradle
[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,
31 final String captcha,
32 final boolean forceRegister
33 ) throws IOException, CaptchaRequiredException {
34 if (forceRegister) {
35 throw new UnsupportedOperationException();
36 }
37 if (captcha == null) {
38 signalControl.register(number, voiceVerification);
39 } else {
40 signalControl.registerWithCaptcha(number, voiceVerification, captcha);
41 }
42 }
43
44 @Override
45 public void verifyAccount(
46 final String verificationCode,
47 final String pin
48 ) throws IOException, PinLockedException, IncorrectPinException {
49 if (pin == null) {
50 signalControl.verify(number, verificationCode);
51 } else {
52 signalControl.verifyWithPin(number, verificationCode, pin);
53 }
54 }
55
56 @Override
57 public void deleteLocalAccountData() throws IOException {
58 throw new UnsupportedOperationException();
59 }
60
61 @Override
62 public boolean isRegistered() {
63 throw new UnsupportedOperationException();
64 }
65
66 @Override
67 public void close() {
68 }
69 }