+ @NotNull
+ private DeviceContact getDeviceContact(
+ final RecipientAddress address, final RecipientId recipientId, final Contact contact
+ ) throws IOException {
+ var currentIdentity = address.serviceId().isEmpty()
+ ? null
+ : account.getIdentityKeyStore().getIdentityInfo(address.serviceId().get());
+ VerifiedMessage verifiedMessage = null;
+ if (currentIdentity != null) {
+ verifiedMessage = new VerifiedMessage(address.toSignalServiceAddress(),
+ currentIdentity.getIdentityKey(),
+ currentIdentity.getTrustLevel().toVerifiedState(),
+ currentIdentity.getDateAddedTimestamp());
+ }
+
+ var profileKey = account.getProfileStore().getProfileKey(recipientId);
+ return new DeviceContact(address.aci(),
+ address.number(),
+ Optional.ofNullable(contact == null ? null : contact.getName()),
+ createContactAvatarAttachment(address),
+ Optional.ofNullable(contact == null ? null : contact.color()),
+ Optional.ofNullable(verifiedMessage),
+ Optional.ofNullable(profileKey),
+ contact != null && contact.isBlocked(),
+ Optional.ofNullable(contact == null ? null : contact.messageExpirationTime()),
+ Optional.empty(),
+ contact != null && contact.isArchived());
+ }
+