Revert "Revert "Represent device names as byte arrays""

This reverts commit 45848e7bfe.
This commit is contained in:
Jon Chambers
2023-12-06 17:13:38 -05:00
committed by Jon Chambers
parent 45848e7bfe
commit 4c9efdb936
17 changed files with 177 additions and 46 deletions

View File

@@ -8,6 +8,7 @@ import static org.whispersystems.textsecuregcm.util.RegistrationIdValidator.vali
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.annotations.VisibleForTesting;
import java.util.Optional;
import javax.annotation.Nullable;
@@ -30,8 +31,10 @@ public class AccountAttributes {
private int phoneNumberIdentityRegistrationId;
@JsonProperty
@Size(max = 204, message = "This field must be less than 50 characters")
private String name;
@JsonSerialize(using = ByteArrayAdapter.Serializing.class)
@JsonDeserialize(using = ByteArrayAdapter.Deserializing.class)
@Size(max = 225)
private byte[] name;
@JsonProperty
private String registrationLock;
@@ -62,7 +65,7 @@ public class AccountAttributes {
final boolean fetchesMessages,
final int registrationId,
final int phoneNumberIdentifierRegistrationId,
final String name,
final byte[] name,
final String registrationLock,
final boolean discoverableByPhoneNumber,
final DeviceCapabilities capabilities) {
@@ -87,7 +90,7 @@ public class AccountAttributes {
return phoneNumberIdentityRegistrationId;
}
public String getName() {
public byte[] getName() {
return name;
}

View File

@@ -5,5 +5,16 @@
package org.whispersystems.textsecuregcm.entities;
public record DeviceInfo(long id, String name, long lastSeen, long created) {
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.whispersystems.textsecuregcm.util.ByteArrayAdapter;
public record DeviceInfo(long id,
@JsonSerialize(using = ByteArrayAdapter.Serializing.class)
@JsonDeserialize(using = ByteArrayAdapter.Deserializing.class)
byte[] name,
long lastSeen,
long created) {
}

View File

@@ -6,19 +6,24 @@
package org.whispersystems.textsecuregcm.entities;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.whispersystems.textsecuregcm.util.ByteArrayAdapter;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
public class DeviceName {
@JsonProperty
@JsonSerialize(using = ByteArrayAdapter.Serializing.class)
@JsonDeserialize(using = ByteArrayAdapter.Deserializing.class)
@NotEmpty
@Size(max = 300, message = "This field must be less than 300 characters")
private String deviceName;
@Size(max = 225)
private byte[] deviceName;
public DeviceName() {}
public String getDeviceName() {
public byte[] getDeviceName() {
return deviceName;
}
}