]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java
Update hypfvieh dbus-java 4.0 beta which uses native java unix sockets
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ManagerImpl.java
index 28a461619e16386f4af43e90b6e78e7c4014a1f6..81c18683acf8256e2e9dfc93c81c8f48ec429d5c 100644 (file)
@@ -156,7 +156,7 @@ public class ManagerImpl implements Manager {
         this.serviceEnvironmentConfig = serviceEnvironmentConfig;
 
         final var credentialsProvider = new DynamicCredentialsProvider(account.getAci(),
-                account.getUsername(),
+                account.getAccount(),
                 account.getPassword(),
                 account.getDeviceId());
         final var sessionLock = new SignalSessionLock() {
@@ -251,7 +251,7 @@ public class ManagerImpl implements Manager {
 
     @Override
     public String getSelfNumber() {
-        return account.getUsername();
+        return account.getAccount();
     }
 
     @Override
@@ -285,7 +285,7 @@ public class ManagerImpl implements Manager {
     public Map<String, Pair<String, UUID>> areUsersRegistered(Set<String> numbers) throws IOException {
         Map<String, String> canonicalizedNumbers = numbers.stream().collect(Collectors.toMap(n -> n, n -> {
             try {
-                return PhoneNumberFormatter.formatNumber(n, account.getUsername());
+                return PhoneNumberFormatter.formatNumber(n, account.getAccount());
             } catch (InvalidNumberException e) {
                 return "";
             }
@@ -683,6 +683,16 @@ public class ManagerImpl implements Manager {
         if (attachments != null) {
             messageBuilder.withAttachments(attachmentHelper.uploadAttachments(attachments));
         }
+        if (message.mentions().size() > 0) {
+            final var mentions = new ArrayList<SignalServiceDataMessage.Mention>();
+            for (final var m : message.mentions()) {
+                final var recipientId = resolveRecipient(m.recipient());
+                mentions.add(new SignalServiceDataMessage.Mention(resolveSignalServiceAddress(recipientId).getAci(),
+                        m.start(),
+                        m.length()));
+            }
+            messageBuilder.withMentions(mentions);
+        }
     }
 
     @Override
@@ -1045,7 +1055,10 @@ public class ManagerImpl implements Manager {
         while (!Thread.interrupted()) {
             SignalServiceEnvelope envelope;
             final CachedMessage[] cachedMessage = {null};
-            account.setLastReceiveTimestamp(System.currentTimeMillis());
+            final var nowMillis = System.currentTimeMillis();
+            if (nowMillis - account.getLastReceiveTimestamp() > 60000) {
+                account.setLastReceiveTimestamp(nowMillis);
+            }
             logger.debug("Checking for new message from server");
             try {
                 var result = signalWebSocket.readOrEmpty(unit.toMillis(timeout), envelope1 -> {
@@ -1265,7 +1278,7 @@ public class ManagerImpl implements Manager {
     /**
      * Trust this the identity with this fingerprint
      *
-     * @param recipient   username of the identity
+     * @param recipient   account of the identity
      * @param fingerprint Fingerprint
      */
     @Override
@@ -1282,7 +1295,7 @@ public class ManagerImpl implements Manager {
     /**
      * Trust this the identity with this safety number
      *
-     * @param recipient    username of the identity
+     * @param recipient    account of the identity
      * @param safetyNumber Safety number
      */
     @Override
@@ -1299,7 +1312,7 @@ public class ManagerImpl implements Manager {
     /**
      * Trust this the identity with this scannable safety number
      *
-     * @param recipient    username of the identity
+     * @param recipient    account of the identity
      * @param safetyNumber Scannable safety number
      */
     @Override
@@ -1316,7 +1329,7 @@ public class ManagerImpl implements Manager {
     /**
      * Trust all keys of this identity without verification
      *
-     * @param recipient username of the identity
+     * @param recipient account of the identity
      */
     @Override
     public boolean trustIdentityAllKeys(RecipientIdentifier.Single recipient) {