]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java
Fix sending messages to groups
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / RegistrationManagerImpl.java
index 5a99b82713de9c451b670c3ee3fba36b8a08e6d4..4b7c836201525532c482e605bba11133a66de36d 100644 (file)
@@ -92,7 +92,15 @@ class RegistrationManagerImpl implements RegistrationManager {
                 serviceEnvironmentConfig.getKeyBackupConfig().getServiceId(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getMrenclave(),
                 10);
-        this.pinHelper = new PinHelper(keyBackupService);
+        final var fallbackKeyBackupServices = serviceEnvironmentConfig.getFallbackKeyBackupConfigs()
+                .stream()
+                .map(config -> accountManager.getKeyBackupService(ServiceConfig.getIasKeyStore(),
+                        config.getEnclaveName(),
+                        config.getServiceId(),
+                        config.getMrenclave(),
+                        10))
+                .toList();
+        this.pinHelper = new PinHelper(keyBackupService, fallbackKeyBackupServices);
     }
 
     @Override
@@ -187,7 +195,8 @@ class RegistrationManagerImpl implements RegistrationManager {
                     account.isUnrestrictedUnidentifiedAccess(),
                     capabilities,
                     account.isDiscoverableByPhoneNumber(),
-                    account.getEncryptedDeviceName());
+                    account.getEncryptedDeviceName(),
+                    account.getLocalPniRegistrationId());
             account.setRegistered(true);
             logger.info("Reactivated existing account, verify is not necessary.");
             if (newManagerListener != null) {
@@ -216,7 +225,8 @@ class RegistrationManagerImpl implements RegistrationManager {
                     account.getSelfUnidentifiedAccessKey(),
                     account.isUnrestrictedUnidentifiedAccess(),
                     ServiceConfig.capabilities,
-                    account.isDiscoverableByPhoneNumber());
+                    account.isDiscoverableByPhoneNumber(),
+                    account.getLocalPniRegistrationId());
         } else {
             return accountManager.verifyAccountWithRegistrationLockPin(verificationCode,
                     account.getLocalRegistrationId(),
@@ -225,7 +235,8 @@ class RegistrationManagerImpl implements RegistrationManager {
                     account.getSelfUnidentifiedAccessKey(),
                     account.isUnrestrictedUnidentifiedAccess(),
                     ServiceConfig.capabilities,
-                    account.isDiscoverableByPhoneNumber());
+                    account.isDiscoverableByPhoneNumber(),
+                    account.getLocalPniRegistrationId());
         }
     }