kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix issue where all forwarded MMS media would try to send as a secure message.
rodzic
4c462bd75a
commit
5612a5d9e4
|
@ -11,6 +11,7 @@ import androidx.core.util.Consumer;
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import org.signal.core.util.ThreadUtil;
|
import org.signal.core.util.ThreadUtil;
|
||||||
|
import org.signal.core.util.concurrent.SimpleTask;
|
||||||
import org.signal.core.util.logging.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.thoughtcrime.securesms.TransportOption;
|
import org.thoughtcrime.securesms.TransportOption;
|
||||||
import org.thoughtcrime.securesms.TransportOptions;
|
import org.thoughtcrime.securesms.TransportOptions;
|
||||||
|
@ -33,7 +34,6 @@ import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage;
|
||||||
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
||||||
import org.thoughtcrime.securesms.util.MessageUtil;
|
import org.thoughtcrime.securesms.util.MessageUtil;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
import org.signal.core.util.concurrent.SimpleTask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -252,13 +252,14 @@ public final class MultiShareSender {
|
||||||
outgoingMessages.add(outgoingMediaMessage);
|
outgoingMessages.add(outgoingMediaMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recipient.isRegistered() && !forceSms) {
|
if (shouldSendAsPush(recipient, forceSms))
|
||||||
|
{
|
||||||
for (final OutgoingMediaMessage outgoingMessage : outgoingMessages) {
|
for (final OutgoingMediaMessage outgoingMessage : outgoingMessages) {
|
||||||
MessageSender.send(context, new OutgoingSecureMediaMessage(outgoingMessage), threadId, false, null, null);
|
MessageSender.send(context, new OutgoingSecureMediaMessage(outgoingMessage), threadId, false, null, null);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (final OutgoingMediaMessage outgoingMessage : outgoingMessages) {
|
for (final OutgoingMediaMessage outgoingMessage : outgoingMessages) {
|
||||||
MessageSender.send(context, new OutgoingSecureMediaMessage(outgoingMessage), threadId, forceSms, null, null);
|
MessageSender.send(context, outgoingMessage, threadId, forceSms, null, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -273,7 +274,7 @@ public final class MultiShareSender {
|
||||||
{
|
{
|
||||||
|
|
||||||
final OutgoingTextMessage outgoingTextMessage;
|
final OutgoingTextMessage outgoingTextMessage;
|
||||||
if (recipient.isRegistered() && !forceSms) {
|
if (shouldSendAsPush(recipient, forceSms)) {
|
||||||
outgoingTextMessage = new OutgoingEncryptedMessage(recipient, multiShareArgs.getDraftText(), expiresIn);
|
outgoingTextMessage = new OutgoingEncryptedMessage(recipient, multiShareArgs.getDraftText(), expiresIn);
|
||||||
} else {
|
} else {
|
||||||
outgoingTextMessage = new OutgoingTextMessage(recipient, multiShareArgs.getDraftText(), expiresIn, subscriptionId);
|
outgoingTextMessage = new OutgoingTextMessage(recipient, multiShareArgs.getDraftText(), expiresIn, subscriptionId);
|
||||||
|
@ -282,6 +283,12 @@ public final class MultiShareSender {
|
||||||
MessageSender.send(context, outgoingTextMessage, threadId, forceSms, null, null);
|
MessageSender.send(context, outgoingTextMessage, threadId, forceSms, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean shouldSendAsPush(@NonNull Recipient recipient, boolean forceSms) {
|
||||||
|
return recipient.isDistributionList() ||
|
||||||
|
recipient.isServiceIdOnly() ||
|
||||||
|
(recipient.isRegistered() && !forceSms);
|
||||||
|
}
|
||||||
|
|
||||||
private static @NonNull SlideDeck buildSlideDeck(@NonNull Context context, @NonNull MultiShareArgs multiShareArgs) throws SlideNotFoundException {
|
private static @NonNull SlideDeck buildSlideDeck(@NonNull Context context, @NonNull MultiShareArgs multiShareArgs) throws SlideNotFoundException {
|
||||||
SlideDeck slideDeck = new SlideDeck();
|
SlideDeck slideDeck = new SlideDeck();
|
||||||
if (multiShareArgs.getStickerLocator() != null) {
|
if (multiShareArgs.getStickerLocator() != null) {
|
||||||
|
|
Ładowanie…
Reference in New Issue