mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 04:28:35 +00:00
Fix multiple text attachments when forwarding to multiple recipients.
Fixes #13593
This commit is contained in:
committed by
Greyson Parrelli
parent
b806952430
commit
16c8b88f0f
@@ -45,6 +45,10 @@ public class SlideDeck {
|
|||||||
if (slide != null) slides.add(slide);
|
if (slide != null) slides.add(slide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SlideDeck(SlideDeck otherSlideDeck) {
|
||||||
|
slides.addAll(otherSlideDeck.slides);
|
||||||
|
}
|
||||||
|
|
||||||
public SlideDeck() {
|
public SlideDeck() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -86,12 +86,12 @@ public final class MultiShareSender {
|
|||||||
List<MultiShareSendResult> results = new ArrayList<>(multiShareArgs.getContactSearchKeys().size());
|
List<MultiShareSendResult> results = new ArrayList<>(multiShareArgs.getContactSearchKeys().size());
|
||||||
Context context = AppDependencies.getApplication();
|
Context context = AppDependencies.getApplication();
|
||||||
String message = multiShareArgs.getDraftText();
|
String message = multiShareArgs.getDraftText();
|
||||||
SlideDeck slideDeck;
|
SlideDeck primarySlideDeck;
|
||||||
List<OutgoingMessage> storiesBatch = new LinkedList<>();
|
List<OutgoingMessage> storiesBatch = new LinkedList<>();
|
||||||
ChatColors generatedTextStoryBackgroundColor = TextStoryBackgroundColors.getRandomBackgroundColor();
|
ChatColors generatedTextStoryBackgroundColor = TextStoryBackgroundColors.getRandomBackgroundColor();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
slideDeck = buildSlideDeck(context, multiShareArgs);
|
primarySlideDeck = buildSlideDeck(context, multiShareArgs);
|
||||||
} catch (SlideNotFoundException e) {
|
} catch (SlideNotFoundException e) {
|
||||||
Log.w(TAG, "Could not create slide for media message");
|
Log.w(TAG, "Could not create slide for media message");
|
||||||
for (ContactSearchKey.RecipientSearchKey recipientSearchKey : multiShareArgs.getRecipientSearchKeys()) {
|
for (ContactSearchKey.RecipientSearchKey recipientSearchKey : multiShareArgs.getRecipientSearchKeys()) {
|
||||||
@@ -105,11 +105,13 @@ public final class MultiShareSender {
|
|||||||
for (ContactSearchKey.RecipientSearchKey recipientSearchKey : multiShareArgs.getRecipientSearchKeys()) {
|
for (ContactSearchKey.RecipientSearchKey recipientSearchKey : multiShareArgs.getRecipientSearchKeys()) {
|
||||||
Recipient recipient = Recipient.resolved(recipientSearchKey.getRecipientId());
|
Recipient recipient = Recipient.resolved(recipientSearchKey.getRecipientId());
|
||||||
|
|
||||||
long threadId = SignalDatabase.threads().getOrCreateThreadIdFor(recipient);
|
long threadId = SignalDatabase.threads().getOrCreateThreadIdFor(recipient);
|
||||||
List<Mention> mentions = getValidMentionsForRecipient(recipient, multiShareArgs.getMentions());
|
List<Mention> mentions = getValidMentionsForRecipient(recipient, multiShareArgs.getMentions());
|
||||||
MessageSendType sendType = MessageSendType.SignalMessageSendType.INSTANCE;
|
MessageSendType sendType = MessageSendType.SignalMessageSendType.INSTANCE;
|
||||||
long expiresIn = TimeUnit.SECONDS.toMillis(recipient.getExpiresInSeconds());
|
long expiresIn = TimeUnit.SECONDS.toMillis(recipient.getExpiresInSeconds());
|
||||||
List<Contact> contacts = multiShareArgs.getSharedContacts();
|
List<Contact> contacts = multiShareArgs.getSharedContacts();
|
||||||
|
SlideDeck slideDeck = new SlideDeck(primarySlideDeck);
|
||||||
|
|
||||||
boolean needsSplit = message != null &&
|
boolean needsSplit = message != null &&
|
||||||
message.length() > sendType.calculateCharacters(message).maxPrimaryMessageSize;
|
message.length() > sendType.calculateCharacters(message).maxPrimaryMessageSize;
|
||||||
boolean hasMmsMedia = !multiShareArgs.getMedia().isEmpty() ||
|
boolean hasMmsMedia = !multiShareArgs.getMedia().isEmpty() ||
|
||||||
|
|||||||
Reference in New Issue
Block a user