X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c9928043b2d23ae89de376eb1b567c7f66e461fe..0c4a037dde99f80d464ddaa2845363e9bf51712c:/lib/src/main/java/org/asamk/signal/manager/MultiAccountManagerImpl.java diff --git a/lib/src/main/java/org/asamk/signal/manager/MultiAccountManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/MultiAccountManagerImpl.java index 74c4c20a..072e965b 100644 --- a/lib/src/main/java/org/asamk/signal/manager/MultiAccountManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/MultiAccountManagerImpl.java @@ -1,10 +1,8 @@ package org.asamk.signal.manager; -import org.asamk.signal.manager.config.ServiceEnvironment; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; import java.io.IOException; import java.net.URI; import java.util.ArrayList; @@ -16,9 +14,8 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.TimeoutException; import java.util.function.Consumer; -import java.util.stream.Collectors; -public class MultiAccountManagerImpl implements MultiAccountManager { +class MultiAccountManagerImpl implements MultiAccountManager { private final static Logger logger = LoggerFactory.getLogger(MultiAccountManagerImpl.class); @@ -26,27 +23,25 @@ public class MultiAccountManagerImpl implements MultiAccountManager { private final Set> onManagerRemovedHandlers = new HashSet<>(); private final Set managers = new HashSet<>(); private final Map provisioningManagers = new HashMap<>(); - private final File dataPath; - private final ServiceEnvironment serviceEnvironment; - private final String userAgent; - - public MultiAccountManagerImpl( - final Collection managers, - final File dataPath, - final ServiceEnvironment serviceEnvironment, - final String userAgent - ) { + private final SignalAccountFiles signalAccountFiles; + + public MultiAccountManagerImpl(final Collection managers, final SignalAccountFiles signalAccountFiles) { + this.signalAccountFiles = signalAccountFiles; this.managers.addAll(managers); managers.forEach(m -> m.addClosedListener(() -> this.removeManager(m))); - this.dataPath = dataPath; - this.serviceEnvironment = serviceEnvironment; - this.userAgent = userAgent; } @Override public List getAccountNumbers() { synchronized (managers) { - return managers.stream().map(Manager::getSelfNumber).collect(Collectors.toList()); + return managers.stream().map(Manager::getSelfNumber).toList(); + } + } + + @Override + public List getManagers() { + synchronized (managers) { + return new ArrayList<>(managers); } } @@ -93,9 +88,9 @@ public class MultiAccountManagerImpl implements MultiAccountManager { } @Override - public Manager getManager(final String account) { + public Manager getManager(final String number) { synchronized (managers) { - return managers.stream().filter(m -> m.getSelfNumber().equals(account)).findFirst().orElse(null); + return managers.stream().filter(m -> m.getSelfNumber().equals(number)).findFirst().orElse(null); } } @@ -112,14 +107,13 @@ public class MultiAccountManagerImpl implements MultiAccountManager { return provisioningManagers.remove(deviceLinkUri); } - @Override - public ProvisioningManager getNewProvisioningManager() { - return ProvisioningManager.init(dataPath, serviceEnvironment, userAgent, this::addManager); + private ProvisioningManager getNewProvisioningManager() { + return signalAccountFiles.initProvisioningManager(this::addManager); } @Override - public RegistrationManager getNewRegistrationManager(String account) throws IOException { - return RegistrationManager.init(account, dataPath, serviceEnvironment, userAgent, this::addManager); + public RegistrationManager getNewRegistrationManager(String number) throws IOException { + return signalAccountFiles.initRegistrationManager(number, this::addManager); } @Override