mirror of
https://github.com/AsamK/signal-cli.git
synced 2026-08-31 06:26:33 +00:00
Try to load manager in MultiAccountManager if it doesn't exist yet
This commit is contained in:
parent
96ec6624c5
commit
af0f4a6b01
@ -925,7 +925,7 @@
|
||||
"allDeclaredFields":true,
|
||||
"queryAllDeclaredMethods":true,
|
||||
"queryAllDeclaredConstructors":true,
|
||||
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.String"] }, {"name":"captcha","parameterTypes":[] }, {"name":"voice","parameterTypes":[] }]
|
||||
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.String"] }, {"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.String","java.lang.Boolean"] }, {"name":"captcha","parameterTypes":[] }, {"name":"voice","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"org.asamk.signal.commands.StartLinkCommand$JsonLink",
|
||||
|
||||
@ -5,6 +5,8 @@ import org.asamk.signal.manager.MultiAccountManager;
|
||||
import org.asamk.signal.manager.ProvisioningManager;
|
||||
import org.asamk.signal.manager.RegistrationManager;
|
||||
import org.asamk.signal.manager.SignalAccountFiles;
|
||||
import org.asamk.signal.manager.api.AccountCheckException;
|
||||
import org.asamk.signal.manager.api.NotRegisteredException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -50,7 +52,7 @@ public class MultiAccountManagerImpl implements MultiAccountManager {
|
||||
}
|
||||
}
|
||||
|
||||
void addManager(final Manager m) {
|
||||
private void addManager(final Manager m) {
|
||||
synchronized (managers) {
|
||||
if (managers.contains(m)) {
|
||||
return;
|
||||
@ -95,7 +97,21 @@ public class MultiAccountManagerImpl implements MultiAccountManager {
|
||||
@Override
|
||||
public Manager getManager(final String number) {
|
||||
synchronized (managers) {
|
||||
return managers.stream().filter(m -> m.getSelfNumber().equals(number)).findFirst().orElse(null);
|
||||
final var manager = managers.stream()
|
||||
.filter(m -> m.getSelfNumber().equals(number))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (manager != null) {
|
||||
return manager;
|
||||
}
|
||||
try {
|
||||
final var newManager = signalAccountFiles.initManager(number);
|
||||
managers.add(newManager);
|
||||
return newManager;
|
||||
} catch (IOException | NotRegisteredException | AccountCheckException e) {
|
||||
logger.warn("Failed to load new manager", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user