]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java
Add command to delete local account data
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / RegistrationManagerImpl.java
index 133bd8b8c6460cbbffbd192c1bc0d8444a89b2e0..3529154a252c29cdd56e110f83b4da510b664ac2 100644 (file)
@@ -95,6 +95,12 @@ class RegistrationManagerImpl implements RegistrationManager {
 
     @Override
     public void register(boolean voiceVerification, String captcha) throws IOException, CaptchaRequiredException {
+        if (account.isRegistered()
+                && account.getServiceEnvironment() != null
+                && account.getServiceEnvironment() != serviceEnvironmentConfig.getType()) {
+            throw new IOException("Account is registered in another environment: " + account.getServiceEnvironment());
+        }
+
         if (account.getAci() != null && attemptReactivateAccount()) {
             return;
         }
@@ -149,6 +155,18 @@ class RegistrationManagerImpl implements RegistrationManager {
         }
     }
 
+    @Override
+    public void deleteLocalAccountData() throws IOException {
+        account.deleteAccountData();
+        accountFileUpdater.removeAccount();
+        account = null;
+    }
+
+    @Override
+    public boolean isRegistered() {
+        return account.isRegistered();
+    }
+
     private boolean attemptReactivateAccount() {
         try {
             final var accountManager = new SignalServiceAccountManager(serviceEnvironmentConfig.getSignalServiceConfiguration(),