]> nmode's Git Repositories - signal-cli/commitdiff
Improve final address when merging recipients
authorAsamK <asamk@gmx.de>
Tue, 14 Jan 2025 19:28:44 +0000 (20:28 +0100)
committerAsamK <asamk@gmx.de>
Tue, 14 Jan 2025 19:30:06 +0000 (20:30 +0100)
lib/src/main/java/org/asamk/signal/manager/storage/recipients/MergeRecipientHelper.java
lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientAddress.java
lib/src/test/java/org/asamk/signal/manager/storage/recipients/MergeRecipientHelperTest.java

index 95c171026f67bea7e89745f1d240aa67f31d6d1e..0a96785bc83813ddee3a3b62476fb0394136d6b5 100644 (file)
@@ -39,7 +39,7 @@ public class MergeRecipientHelper {
                     )
             ) || recipient.address().aci().equals(address.aci())) {
                 logger.debug("Got existing recipient {}, updating with high trust address", recipient.id());
                     )
             ) || recipient.address().aci().equals(address.aci())) {
                 logger.debug("Got existing recipient {}, updating with high trust address", recipient.id());
-                store.updateRecipientAddress(recipient.id(), recipient.address().withIdentifiersFrom(address));
+                store.updateRecipientAddress(recipient.id(), address.withOtherIdentifiersFrom(recipient.address()));
                 return new Pair<>(recipient.id(), List.of());
             }
 
                 return new Pair<>(recipient.id(), List.of());
             }
 
@@ -93,14 +93,14 @@ public class MergeRecipientHelper {
             if (finalAddress == null) {
                 finalAddress = recipient.address();
             } else {
             if (finalAddress == null) {
                 finalAddress = recipient.address();
             } else {
-                finalAddress = finalAddress.withIdentifiersFrom(recipient.address());
+                finalAddress = finalAddress.withOtherIdentifiersFrom(recipient.address());
             }
             store.removeRecipientAddress(recipient.id());
         }
         if (finalAddress == null) {
             finalAddress = address;
         } else {
             }
             store.removeRecipientAddress(recipient.id());
         }
         if (finalAddress == null) {
             finalAddress = address;
         } else {
-            finalAddress = finalAddress.withIdentifiersFrom(address);
+            finalAddress = address.withOtherIdentifiersFrom(finalAddress);
         }
 
         for (final var recipient : recipientsToBeStripped) {
         }
 
         for (final var recipient : recipientsToBeStripped) {
index ba2b9f266c9001f3ce285c81cb95186ffab3bc07..25dc3a3f96f967eef330dcc92cb1907342d78c9f 100644 (file)
@@ -79,11 +79,11 @@ public record RecipientAddress(
         this(Optional.of(serviceId), Optional.empty());
     }
 
         this(Optional.of(serviceId), Optional.empty());
     }
 
-    public RecipientAddress withIdentifiersFrom(RecipientAddress address) {
-        return new RecipientAddress(address.aci.or(this::aci),
-                address.pni.or(this::pni),
-                address.number.or(this::number),
-                address.username.or(this::username));
+    public RecipientAddress withOtherIdentifiersFrom(RecipientAddress address) {
+        return new RecipientAddress(this.aci.or(address::aci),
+                this.pni.or(address::pni),
+                this.number.or(address::number),
+                this.username.or(address::username));
     }
 
     public RecipientAddress removeIdentifiersFrom(RecipientAddress address) {
     }
 
     public RecipientAddress removeIdentifiersFrom(RecipientAddress address) {
index 0931b008f9ecedd374a233db55b403f980354be6..f2f427c1a36495ceea6195e89666bcf61b395284 100644 (file)
@@ -111,18 +111,20 @@ class MergeRecipientHelperTest {
             new T(Set.of(rec(1, ADDR_A.ACI), rec(2, ADDR_A.PNI), rec(3, ADDR_A.NUM)),
                     ADDR_A.FULL,
                     Set.of(rec(1, ADDR_A.FULL))),
             new T(Set.of(rec(1, ADDR_A.ACI), rec(2, ADDR_A.PNI), rec(3, ADDR_A.NUM)),
                     ADDR_A.FULL,
                     Set.of(rec(1, ADDR_A.FULL))),
-            new T(Set.of(rec(1, ADDR_A.ACI.withIdentifiersFrom(ADDR_B.PNI)), rec(2, ADDR_A.PNI), rec(3, ADDR_A.NUM)),
-                    ADDR_A.FULL,
-                    Set.of(rec(1, ADDR_A.FULL))),
-            new T(Set.of(rec(1, ADDR_A.ACI.withIdentifiersFrom(ADDR_B.NUM)), rec(2, ADDR_A.PNI), rec(3, ADDR_A.NUM)),
-                    ADDR_A.FULL,
-                    Set.of(rec(1, ADDR_A.FULL))),
-            new T(Set.of(rec(1, ADDR_A.ACI), rec(2, ADDR_A.PNI), rec(3, ADDR_A.NUM.withIdentifiersFrom(ADDR_B.ACI))),
+            new T(Set.of(rec(1, ADDR_B.PNI.withOtherIdentifiersFrom(ADDR_A.ACI)),
+                    rec(2, ADDR_A.PNI),
+                    rec(3, ADDR_A.NUM)), ADDR_A.FULL, Set.of(rec(1, ADDR_A.FULL))),
+            new T(Set.of(rec(1, ADDR_B.NUM.withOtherIdentifiersFrom(ADDR_A.ACI)),
+                    rec(2, ADDR_A.PNI),
+                    rec(3, ADDR_A.NUM)), ADDR_A.FULL, Set.of(rec(1, ADDR_A.FULL))),
+            new T(Set.of(rec(1, ADDR_A.ACI),
+                    rec(2, ADDR_A.PNI),
+                    rec(3, ADDR_B.ACI.withOtherIdentifiersFrom(ADDR_A.NUM))),
                     ADDR_A.FULL,
                     Set.of(rec(1, ADDR_A.FULL), rec(3, ADDR_B.ACI))),
                     ADDR_A.FULL,
                     Set.of(rec(1, ADDR_A.FULL), rec(3, ADDR_B.ACI))),
-            new T(Set.of(rec(1, ADDR_A.ACI), rec(2, ADDR_A.PNI.withIdentifiersFrom(ADDR_B.ACI)), rec(3, ADDR_A.NUM)),
-                    ADDR_A.FULL,
-                    Set.of(rec(1, ADDR_A.FULL), rec(2, ADDR_B.ACI))),
+            new T(Set.of(rec(1, ADDR_A.ACI),
+                    rec(2, ADDR_B.ACI.withOtherIdentifiersFrom(ADDR_A.PNI)),
+                    rec(3, ADDR_A.NUM)), ADDR_A.FULL, Set.of(rec(1, ADDR_A.FULL), rec(2, ADDR_B.ACI))),
     };
 
     @ParameterizedTest
     };
 
     @ParameterizedTest