]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/SignalDependencies.java
Add PNI to recipients
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / SignalDependencies.java
index aeef7f15e9e190887dc70f52021209a6fb58b30c..3b3b375a7d6ddd99d2f4872d14310b31d042e3fe 100644 (file)
@@ -22,6 +22,7 @@ import org.whispersystems.signalservice.api.util.UptimeSleepTimer;
 import org.whispersystems.signalservice.api.websocket.WebSocketFactory;
 import org.whispersystems.signalservice.internal.websocket.WebSocketConnection;
 
+import java.util.Collection;
 import java.util.Optional;
 import java.util.concurrent.ExecutorService;
 import java.util.function.Supplier;
@@ -39,6 +40,8 @@ public class SignalDependencies {
     private final ExecutorService executor;
     private final SignalSessionLock sessionLock;
 
+    private boolean allowStories = true;
+
     private SignalServiceAccountManager accountManager;
     private GroupsV2Api groupsV2Api;
     private GroupsV2Operations groupsV2Operations;
@@ -71,6 +74,14 @@ public class SignalDependencies {
     public void resetAfterAddressChange() {
         this.messageSender = null;
         this.cipher = null;
+        getSignalWebSocket().forceNewWebSockets();
+    }
+
+    /**
+     * This method needs to be called before the first websocket is created
+     */
+    public void setAllowStories(final boolean allowStories) {
+        this.allowStories = allowStories;
     }
 
     public ServiceEnvironmentConfig getServiceEnvironmentConfig() {
@@ -133,7 +144,8 @@ public class SignalDependencies {
                             serviceEnvironmentConfig.getSignalServiceConfiguration(),
                             Optional.of(credentialsProvider),
                             userAgent,
-                            healthMonitor);
+                            healthMonitor,
+                            allowStories);
                 }
 
                 @Override
@@ -142,7 +154,8 @@ public class SignalDependencies {
                             serviceEnvironmentConfig.getSignalServiceConfiguration(),
                             Optional.empty(),
                             userAgent,
-                            healthMonitor);
+                            healthMonitor,
+                            allowStories);
                 }
             };
             signalWebSocket = new SignalWebSocket(webSocketFactory);
@@ -183,6 +196,17 @@ public class SignalDependencies {
                         10));
     }
 
+    public Collection<KeyBackupService> getFallbackKeyBackupServices() {
+        return serviceEnvironmentConfig.getFallbackKeyBackupConfigs()
+                .stream()
+                .map(config -> getAccountManager().getKeyBackupService(ServiceConfig.getIasKeyStore(),
+                        config.getEnclaveName(),
+                        config.getServiceId(),
+                        config.getMrenclave(),
+                        10))
+                .toList();
+    }
+
     public ProfileService getProfileService() {
         return getOrCreate(() -> profileService,
                 () -> profileService = new ProfileService(getClientZkProfileOperations(),