]> nmode's Git Repositories - signal-cli/commitdiff
Default number sharing to NOBODY
authorAsamK <asamk@gmx.de>
Mon, 26 Feb 2024 17:27:09 +0000 (18:27 +0100)
committerAsamK <asamk@gmx.de>
Mon, 26 Feb 2024 17:27:09 +0000 (18:27 +0100)
Matches the official apps behavior.

Closes #1472

graalvm-config-dir/reflect-config.json
lib/src/main/java/org/asamk/signal/manager/helper/UnidentifiedAccessHelper.java
lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java

index 899c6dfcde76dbb17b7434b5f701018891fe0917..96961e4c2f9b3297f5db9b78c62eae771e1d4850 100644 (file)
   "name":"java.util.concurrent.atomic.Striped64",
   "fields":[{"name":"base"}, {"name":"cellsBusy"}]
 },
   "name":"java.util.concurrent.atomic.Striped64",
   "fields":[{"name":"base"}, {"name":"cellsBusy"}]
 },
+{
+  "name":"java.util.concurrent.atomic.Striped64$Cell",
+  "fields":[{"name":"value"}]
+},
 {
   "name":"javax.security.auth.x500.X500Principal",
   "methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
 {
   "name":"javax.security.auth.x500.X500Principal",
   "methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
index 7c73c80f67e70eba2ca8b13f3448298973b3a487..dacc97ba6477fad7be6d0ca10c325b5eabe5e8f2 100644 (file)
@@ -98,7 +98,7 @@ public class UnidentifiedAccessHelper {
 
     private byte[] getSenderCertificateFor(final RecipientId recipientId) {
         final var sharingMode = account.getConfigurationStore().getPhoneNumberSharingMode();
 
     private byte[] getSenderCertificateFor(final RecipientId recipientId) {
         final var sharingMode = account.getConfigurationStore().getPhoneNumberSharingMode();
-        if (sharingMode == null || sharingMode == PhoneNumberSharingMode.EVERYBODY || (
+        if (sharingMode == PhoneNumberSharingMode.EVERYBODY || (
                 sharingMode == PhoneNumberSharingMode.CONTACTS
                         && account.getContactStore().getContact(recipientId) != null
         )) {
                 sharingMode == PhoneNumberSharingMode.CONTACTS
                         && account.getContactStore().getContact(recipientId) != null
         )) {
index 8cf0604833dcebc7640b35011045d0f0f25778bd..92ea4222b4631eb79cc526a0e4afc970cce9b431 100644 (file)
@@ -16,7 +16,6 @@ import org.whispersystems.signalservice.api.storage.SignalStorageRecord;
 import org.whispersystems.signalservice.api.util.UuidUtil;
 import org.whispersystems.signalservice.internal.storage.protos.AccountRecord;
 import org.whispersystems.signalservice.internal.storage.protos.AccountRecord.UsernameLink;
 import org.whispersystems.signalservice.api.util.UuidUtil;
 import org.whispersystems.signalservice.internal.storage.protos.AccountRecord;
 import org.whispersystems.signalservice.internal.storage.protos.AccountRecord.UsernameLink;
-import org.whispersystems.signalservice.internal.storage.protos.ContactRecord;
 import org.whispersystems.signalservice.internal.storage.protos.ContactRecord.IdentityState;
 
 import java.util.Optional;
 import org.whispersystems.signalservice.internal.storage.protos.ContactRecord.IdentityState;
 
 import java.util.Optional;
@@ -38,7 +37,8 @@ public final class StorageSyncModels {
     public static PhoneNumberSharingMode remoteToLocal(AccountRecord.PhoneNumberSharingMode phoneNumberPhoneNumberSharingMode) {
         return switch (phoneNumberPhoneNumberSharingMode) {
             case EVERYBODY -> PhoneNumberSharingMode.EVERYBODY;
     public static PhoneNumberSharingMode remoteToLocal(AccountRecord.PhoneNumberSharingMode phoneNumberPhoneNumberSharingMode) {
         return switch (phoneNumberPhoneNumberSharingMode) {
             case EVERYBODY -> PhoneNumberSharingMode.EVERYBODY;
-            case UNKNOWN, NOBODY -> PhoneNumberSharingMode.NOBODY;
+            case NOBODY -> PhoneNumberSharingMode.NOBODY;
+            case UNKNOWN -> null;
         };
     }
 
         };
     }
 
@@ -63,8 +63,9 @@ public final class StorageSyncModels {
                         .orElse(true))
                 .setLinkPreviewsEnabled(Optional.ofNullable(configStore.getLinkPreviews()).orElse(true))
                 .setUnlistedPhoneNumber(Optional.ofNullable(configStore.getPhoneNumberUnlisted()).orElse(false))
                         .orElse(true))
                 .setLinkPreviewsEnabled(Optional.ofNullable(configStore.getLinkPreviews()).orElse(true))
                 .setUnlistedPhoneNumber(Optional.ofNullable(configStore.getPhoneNumberUnlisted()).orElse(false))
-                .setPhoneNumberSharingMode(localToRemote(Optional.ofNullable(configStore.getPhoneNumberSharingMode())
-                        .orElse(PhoneNumberSharingMode.EVERYBODY)))
+                .setPhoneNumberSharingMode(Optional.ofNullable(configStore.getPhoneNumberSharingMode())
+                        .map(StorageSyncModels::localToRemote)
+                        .orElse(AccountRecord.PhoneNumberSharingMode.UNKNOWN))
                 .setE164(self.getAddress().number().orElse(""))
                 .setUsername(self.getAddress().username().orElse(null));
         if (usernameLinkComponents != null) {
                 .setE164(self.getAddress().number().orElse(""))
                 .setUsername(self.getAddress().username().orElse(null));
         if (usernameLinkComponents != null) {
@@ -136,7 +137,7 @@ public final class StorageSyncModels {
         return SignalStorageRecord.forGroupV2(builder.build());
     }
 
         return SignalStorageRecord.forGroupV2(builder.build());
     }
 
-    public static TrustLevel remoteToLocal(ContactRecord.IdentityState identityState) {
+    public static TrustLevel remoteToLocal(IdentityState identityState) {
         return switch (identityState) {
             case DEFAULT -> TrustLevel.TRUSTED_UNVERIFIED;
             case UNVERIFIED -> TrustLevel.UNTRUSTED;
         return switch (identityState) {
             case DEFAULT -> TrustLevel.TRUSTED_UNVERIFIED;
             case UNVERIFIED -> TrustLevel.UNTRUSTED;