Matches the official apps behavior.
Closes #1472
"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"] }]
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
)) {
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;
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;
.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) {
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;