]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java
Add register parameter to force reregistration
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / RegistrationManager.java
index f094ed92e9d125dca9652b2b60115f719dd53443..75a91dc972fa19bf88014169f2dd28e592984ed2 100644 (file)
@@ -2,64 +2,25 @@ package org.asamk.signal.manager;
 
 import org.asamk.signal.manager.api.CaptchaRequiredException;
 import org.asamk.signal.manager.api.IncorrectPinException;
+import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException;
 import org.asamk.signal.manager.api.PinLockedException;
-import org.asamk.signal.manager.config.ServiceConfig;
-import org.asamk.signal.manager.config.ServiceEnvironment;
-import org.asamk.signal.manager.storage.SignalAccount;
-import org.asamk.signal.manager.storage.identities.TrustNewIdentity;
-import org.asamk.signal.manager.util.KeyUtils;
-import org.whispersystems.libsignal.util.KeyHelper;
+import org.asamk.signal.manager.api.RateLimitException;
+import org.asamk.signal.manager.api.VerificationMethoNotAvailableException;
 
 import java.io.Closeable;
-import java.io.File;
 import java.io.IOException;
-import java.util.function.Consumer;
 
 public interface RegistrationManager extends Closeable {
 
-    static RegistrationManager init(
-            String number, File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent
-    ) throws IOException {
-        return init(number, settingsPath, serviceEnvironment, userAgent, null);
-    }
-
-    static RegistrationManager init(
-            String number,
-            File settingsPath,
-            ServiceEnvironment serviceEnvironment,
-            String userAgent,
-            Consumer<Manager> newManagerListener
-    ) throws IOException {
-        var pathConfig = PathConfig.createDefault(settingsPath);
-
-        final var serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
-        if (!SignalAccount.userExists(pathConfig.dataPath(), number)) {
-            var identityKey = KeyUtils.generateIdentityKeyPair();
-            var registrationId = KeyHelper.generateRegistrationId(false);
-
-            var profileKey = KeyUtils.createProfileKey();
-            var account = SignalAccount.create(pathConfig.dataPath(),
-                    number,
-                    identityKey,
-                    registrationId,
-                    profileKey,
-                    TrustNewIdentity.ON_FIRST_USE);
-
-            return new RegistrationManagerImpl(account,
-                    pathConfig,
-                    serviceConfiguration,
-                    userAgent,
-                    newManagerListener);
-        }
-
-        var account = SignalAccount.load(pathConfig.dataPath(), number, true, TrustNewIdentity.ON_FIRST_USE);
-
-        return new RegistrationManagerImpl(account, pathConfig, serviceConfiguration, userAgent, newManagerListener);
-    }
-
-    void register(boolean voiceVerification, String captcha) throws IOException, CaptchaRequiredException;
+    void register(
+            boolean voiceVerification, String captcha, final boolean forceRegister
+    ) throws IOException, CaptchaRequiredException, NonNormalizedPhoneNumberException, RateLimitException, VerificationMethoNotAvailableException;
 
     void verifyAccount(
             String verificationCode, String pin
     ) throws IOException, PinLockedException, IncorrectPinException;
+
+    void deleteLocalAccountData() throws IOException;
+
+    boolean isRegistered();
 }