From: AsamK Date: Mon, 26 Feb 2024 17:27:09 +0000 (+0100) Subject: Default number sharing to NOBODY X-Git-Tag: v0.13.1~5 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/df76aa9919fd5f5292da2dc63bf18f8c69a7f19f Default number sharing to NOBODY Matches the official apps behavior. Closes #1472 --- diff --git a/graalvm-config-dir/reflect-config.json b/graalvm-config-dir/reflect-config.json index 899c6dfc..96961e4c 100644 --- a/graalvm-config-dir/reflect-config.json +++ b/graalvm-config-dir/reflect-config.json @@ -436,6 +436,10 @@ "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":"","parameterTypes":["sun.security.x509.X500Name"] }] diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/UnidentifiedAccessHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/UnidentifiedAccessHelper.java index 7c73c80f..dacc97ba 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/UnidentifiedAccessHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/UnidentifiedAccessHelper.java @@ -98,7 +98,7 @@ public class UnidentifiedAccessHelper { 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 )) { diff --git a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java index 8cf06048..92ea4222 100644 --- a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java +++ b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java @@ -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.internal.storage.protos.ContactRecord; 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; - 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)) - .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) { @@ -136,7 +137,7 @@ public final class StorageSyncModels { 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;