]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java
Update account attributes before checking whoAmI
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ManagerImpl.java
index dc7e743ec6221e0355636434a71c0396327aa3bf..234239556822ddd2ae697c03f9a376cb7a30f328 100644 (file)
@@ -232,6 +232,7 @@ class ManagerImpl implements Manager {
             context.getAccountHelper().setDeviceName(deviceName);
         }
         context.getAccountHelper().updateAccountAttributes();
+        context.getAccountHelper().checkWhoAmiI();
     }
 
     @Override
@@ -830,9 +831,7 @@ class ManagerImpl implements Manager {
     }
 
     void retrieveRemoteStorage() throws IOException {
-        if (account.getStorageKey() != null) {
-            context.getStorageHelper().readDataFromStorage();
-        }
+        context.getStorageHelper().readDataFromStorage();
     }
 
     @Override
@@ -860,7 +859,8 @@ class ManagerImpl implements Manager {
             logger.debug("Starting receiving messages");
             context.getReceiveHelper().receiveMessagesContinuously((envelope, e) -> {
                 synchronized (messageHandlers) {
-                    Stream.concat(messageHandlers.stream(), weakHandlers.stream()).forEach(h -> {
+                    final var handlers = Stream.concat(messageHandlers.stream(), weakHandlers.stream()).toList();
+                    handlers.forEach(h -> {
                         try {
                             h.handleMessage(envelope, e);
                         } catch (Throwable ex) {
@@ -988,6 +988,9 @@ class ManagerImpl implements Manager {
                 return null;
             }
         }).filter(Objects::nonNull).collect(Collectors.toSet());
+        if (!recipients.isEmpty() && recipientIds.isEmpty()) {
+            return List.of();
+        }
         // refresh profiles of explicitly given recipients
         context.getProfileHelper().refreshRecipientProfiles(recipientIds);
         return account.getRecipientStore().getRecipients(onlyContacts, blocked, recipientIds, name);
@@ -1048,7 +1051,7 @@ class ManagerImpl implements Manager {
         IdentityInfo identity;
         try {
             identity = account.getIdentityKeyStore()
-                    .getIdentity(context.getRecipientHelper().resolveRecipient(recipient));
+                    .getIdentityInfo(context.getRecipientHelper().resolveRecipient(recipient));
         } catch (UnregisteredRecipientException e) {
             identity = null;
         }