String givenName,
String familyName,
String nickName,
+ String nickNameGivenName,
+ String nickNameFamilyName,
+ String note,
String color,
int messageExpirationTime,
long muteUntil,
this(builder.givenName,
builder.familyName,
builder.nickName,
+ builder.nickNameGivenName,
+ builder.nickNameFamilyName,
+ builder.note,
builder.color,
builder.messageExpirationTime,
builder.muteUntil,
private String givenName;
private String familyName;
private String nickName;
+ private String nickNameGivenName;
+ private String nickNameFamilyName;
+ private String note;
private String color;
private int messageExpirationTime;
private long muteUntil;
return this;
}
+ public Builder withNickNameGivenName(final String val) {
+ nickNameGivenName = val;
+ return this;
+ }
+
+ public Builder withNickNameFamilyName(final String val) {
+ nickNameFamilyName = val;
+ return this;
+ }
+
+ public Builder withNote(final String val) {
+ note = val;
+ return this;
+ }
+
public Builder withColor(final String val) {
color = val;
return this;
public class AccountDatabase extends Database {
private static final Logger logger = LoggerFactory.getLogger(AccountDatabase.class);
- private static final long DATABASE_VERSION = 24;
+ private static final long DATABASE_VERSION = 25;
private AccountDatabase(final HikariDataSource dataSource) {
super(logger, DATABASE_VERSION, dataSource);
""");
}
}
+ if (oldVersion < 25) {
+ logger.debug("Updating database: Create nick_name and note columns");
+ try (final var statement = connection.createStatement()) {
+ statement.executeUpdate("""
+ ALTER TABLE recipient ADD nick_name_given_name TEXT;
+ ALTER TABLE recipient ADD nick_name_family_name TEXT;
+ ALTER TABLE recipient ADD note TEXT;
+ """);
+ }
+ }
}
private static void createUuidMappingTable(
final var recipientId = getRecipientStore().resolveRecipientTrusted(contact.getAddress());
getContactStore().storeContact(recipientId,
new Contact(contact.name,
+ null,
+ null,
+ null,
null,
null,
contact.color,
Contact contact = null;
if (r.contact != null) {
contact = new Contact(r.contact.name,
+ null,
+ null,
+ null,
null,
null,
r.contact.color,
given_name TEXT,
family_name TEXT,
nick_name TEXT,
+ nick_name_given_name TEXT,
+ nick_name_family_name TEXT,
+ note TEXT,
color TEXT,
expiration_time INTEGER NOT NULL DEFAULT 0,
return new Contact(resultSet.getString("given_name"),
resultSet.getString("family_name"),
resultSet.getString("nick_name"),
+ resultSet.getString("nick_name_given_name"),
+ resultSet.getString("nick_name_family_name"),
+ resultSet.getString("note"),
resultSet.getString("color"),
resultSet.getInt("expiration_time"),
resultSet.getLong("mute_until"),
.withGivenName(contactRecord.getSystemGivenName().orElse(null))
.withFamilyName(contactRecord.getSystemFamilyName().orElse(null))
.withNickName(contactRecord.getSystemNickname().orElse(null))
+ .withNickNameGivenName(contactRecord.getNicknameGivenName().orElse(null))
+ .withNickNameFamilyName(contactRecord.getNicknameFamilyName().orElse(null))
+ .withNote(contactRecord.getNote().orElse(null))
.withUnregisteredTimestamp(contactRecord.getUnregisteredTimestamp() == 0
? null
: contactRecord.getUnregisteredTimestamp());
builder.setSystemGivenName(recipient.getContact().givenName())
.setSystemFamilyName(recipient.getContact().familyName())
.setSystemNickname(recipient.getContact().nickName())
+ .setNicknameGivenName(recipient.getContact().nickNameGivenName())
+ .setNicknameFamilyName(recipient.getContact().nickNameFamilyName())
+ .setNote(recipient.getContact().note())
.setBlocked(recipient.getContact().isBlocked())
.setProfileSharingEnabled(recipient.getContact().isProfileSharingEnabled())
.setMuteUntil(recipient.getContact().muteUntil())
return Recipient.newBuilder()
.withAddress(new RecipientAddress(null, n))
.withContact(new Contact(contactName,
+ null,
+ null,
+ null,
null,
null,
null,