diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index 97e4ae738..f1dc0d18c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.recipients.RecipientUtil; +import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.whispersystems.libsignal.IdentityKey; import org.whispersystems.libsignal.util.guava.Optional; @@ -259,14 +260,17 @@ public class MultiDeviceContactUpdateJob extends BaseJob { throws UntrustedIdentityException, NetworkException { if (length > 0) { - SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder() - .withStream(stream) - .withContentType("application/octet-stream") - .withLength(length) - .build(); - try { - messageSender.sendMessage(SignalServiceSyncMessage.forContacts(new ContactsMessage(attachmentStream, complete)), + SignalServiceAttachmentStream.Builder attachmentStream = SignalServiceAttachment.newStreamBuilder() + .withStream(stream) + .withContentType("application/octet-stream") + .withLength(length); + + if (FeatureFlags.attachmentsV3()) { + attachmentStream.withResumableUploadSpec(messageSender.getResumableUploadSpec()); + } + + messageSender.sendMessage(SignalServiceSyncMessage.forContacts(new ContactsMessage(attachmentStream.build(), complete)), UnidentifiedAccessUtil.getAccessForSync(context)); } catch (IOException ioe) { throw new NetworkException(ioe); diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java index 1edfdeaf8..2a3ca1f6f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java @@ -15,6 +15,8 @@ import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.GroupDatabase; import org.thoughtcrime.securesms.database.IdentityDatabase; import org.thoughtcrime.securesms.database.ThreadDatabase; +import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.OutgoingExpirationUpdateMessage; import org.thoughtcrime.securesms.recipients.Recipient; @@ -96,6 +98,7 @@ final class ManageRecipientRepository { MaterialColor selectedColor = MaterialColors.CONVERSATION_PALETTE.getByColor(context, color); if (selectedColor != null) { DatabaseFactory.getRecipientDatabase(context).setColor(recipientId, selectedColor); + ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(recipientId)); } }); }