]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java
Cleanup manager package
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ProvisioningManager.java
1 package org.asamk.signal.manager;
2
3 import org.asamk.signal.manager.api.UserAlreadyExistsException;
4 import org.asamk.signal.manager.config.ServiceConfig;
5 import org.asamk.signal.manager.config.ServiceEnvironment;
6
7 import java.io.File;
8 import java.io.IOException;
9 import java.net.URI;
10 import java.util.concurrent.TimeoutException;
11 import java.util.function.Consumer;
12
13 public interface ProvisioningManager {
14
15 static ProvisioningManager init(
16 File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent
17 ) {
18 return init(settingsPath, serviceEnvironment, userAgent, null);
19 }
20
21 static ProvisioningManager init(
22 File settingsPath,
23 ServiceEnvironment serviceEnvironment,
24 String userAgent,
25 Consumer<Manager> newManagerListener
26 ) {
27 var pathConfig = PathConfig.createDefault(settingsPath);
28
29 final var serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
30
31 return new ProvisioningManagerImpl(pathConfig, serviceConfiguration, userAgent, newManagerListener);
32 }
33
34 URI getDeviceLinkUri() throws TimeoutException, IOException;
35
36 String finishDeviceLink(String deviceName) throws IOException, TimeoutException, UserAlreadyExistsException;
37 }