requestSyncData(SyncMessage.Request.Type.BLOCKED);
requestSyncData(SyncMessage.Request.Type.CONFIGURATION);
requestSyncKeys();
- requestSyncPniIdentity();
}
public void requestSyncKeys() {
requestSyncData(SyncMessage.Request.Type.KEYS);
}
- public void requestSyncPniIdentity() {
- requestSyncData(SyncMessage.Request.Type.PNI_IDENTITY);
- }
-
public SendMessageResult sendSyncFetchProfileMessage() {
return context.getSendHelper()
.sendSyncMessage(SignalServiceSyncMessage.forFetchLatest(SignalServiceSyncMessage.FetchType.LOCAL_PROFILE));
final var contact = contactPair.second();
final var address = account.getRecipientAddressResolver().resolveRecipientAddress(recipientId);
- final var deviceContact = getDeviceContact(address, recipientId, contact);
+ final var deviceContact = getDeviceContact(address, contact);
out.write(deviceContact);
deviceContact.getAvatar().ifPresent(a -> {
try {
final var address = account.getSelfRecipientAddress();
final var recipientId = account.getSelfRecipientId();
final var contact = account.getContactStore().getContact(recipientId);
- final var deviceContact = getDeviceContact(address, recipientId, contact);
+ final var deviceContact = getDeviceContact(address, contact);
out.write(deviceContact);
deviceContact.getAvatar().ifPresent(a -> {
try {
}
@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);
+ private DeviceContact getDeviceContact(final RecipientAddress address, final Contact contact) throws IOException {
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),
Optional.ofNullable(contact == null ? null : contact.messageExpirationTime()),
Optional.ofNullable(contact == null ? null : contact.messageExpirationTimeVersion()),
- Optional.empty(),
- contact != null && contact.isArchived());
+ Optional.empty());
}
public SendMessageResult sendBlockedList() {
break;
}
final var address = new RecipientAddress(c.getAci(), Optional.empty(), c.getE164(), Optional.empty());
- if (address.matches(account.getSelfRecipientAddress()) && c.getProfileKey().isPresent()) {
- account.setProfileKey(c.getProfileKey().get());
- }
final var recipientId = account.getRecipientTrustedResolver().resolveRecipientTrusted(address);
var contact = account.getContactStore().getContact(recipientId);
final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
builder.withGivenName(c.getName().get());
builder.withFamilyName(null);
}
- if (c.getColor().isPresent()) {
- builder.withColor(c.getColor().get());
- }
- if (c.getProfileKey().isPresent()) {
- account.getProfileStore().storeProfileKey(recipientId, c.getProfileKey().get());
- }
- if (c.getVerified().isPresent()) {
- final var verifiedMessage = c.getVerified().get();
- account.getIdentityKeyStore()
- .setIdentityTrustLevel(verifiedMessage.getDestination().getServiceId(),
- verifiedMessage.getIdentityKey(),
- TrustLevel.fromVerifiedState(verifiedMessage.getVerified()));
- }
if (c.getExpirationTimer().isPresent()) {
if (c.getExpirationTimerVersion().isPresent() && (
contact == null || c.getExpirationTimerVersion().get() > contact.messageExpirationTimeVersion()
contact == null ? 1 : contact.messageExpirationTimeVersion());
}
}
- builder.withIsArchived(c.isArchived());
account.getContactStore().storeContact(recipientId, builder.build());
if (c.getAvatar().isPresent()) {
public static PaymentAddress signPaymentsAddress(byte[] publicAddressBytes, ECPrivateKey privateKey) {
byte[] signature = privateKey.calculateSignature(publicAddressBytes);
- return new PaymentAddress.Builder().mobileCoinAddress(new PaymentAddress.MobileCoinAddress.Builder().address(
- ByteString.of(publicAddressBytes)).signature(ByteString.of(signature)).build()).build();
+ return new PaymentAddress.Builder().mobileCoin(new PaymentAddress.MobileCoin.Builder().publicAddress(ByteString.of(
+ publicAddressBytes)).signature(ByteString.of(signature)).build()).build();
}
/**
* Returns the validated bytes if so, otherwise returns null.
*/
public static byte[] verifyPaymentsAddress(PaymentAddress paymentAddress, ECPublicKey publicKey) {
- final var mobileCoinAddress = paymentAddress.mobileCoinAddress;
- if (mobileCoinAddress == null || mobileCoinAddress.address == null || mobileCoinAddress.signature == null) {
+ final var mobileCoinAddress = paymentAddress.mobileCoin;
+ if (mobileCoinAddress == null
+ || mobileCoinAddress.publicAddress == null
+ || mobileCoinAddress.signature == null) {
logger.debug("Got payment address without mobile coin address, ignoring.");
return null;
}
- byte[] bytes = mobileCoinAddress.address.toByteArray();
+ byte[] bytes = mobileCoinAddress.publicAddress.toByteArray();
byte[] signature = mobileCoinAddress.signature.toByteArray();
if (signature.length != 64 || !publicKey.verifySignature(bytes, signature)) {