kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix issue where forwarded messages would show unlock icon.
rodzic
fec4a7692d
commit
7bede7e98a
|
@ -78,23 +78,6 @@ public class OutgoingMediaMessage {
|
||||||
contacts, linkPreviews, mentions, new LinkedList<>(), new LinkedList<>());
|
contacts, linkPreviews, mentions, new LinkedList<>(), new LinkedList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OutgoingMediaMessage(OutgoingMediaMessage that, long expiresIn) {
|
|
||||||
this(that.getRecipient(),
|
|
||||||
that.body,
|
|
||||||
that.attachments,
|
|
||||||
that.sentTimeMillis,
|
|
||||||
that.subscriptionId,
|
|
||||||
expiresIn,
|
|
||||||
that.viewOnce,
|
|
||||||
that.distributionType,
|
|
||||||
that.outgoingQuote,
|
|
||||||
that.contacts,
|
|
||||||
that.linkPreviews,
|
|
||||||
that.mentions,
|
|
||||||
that.networkFailures,
|
|
||||||
that.identityKeyMismatches);
|
|
||||||
}
|
|
||||||
|
|
||||||
public OutgoingMediaMessage(OutgoingMediaMessage that) {
|
public OutgoingMediaMessage(OutgoingMediaMessage that) {
|
||||||
this.recipient = that.getRecipient();
|
this.recipient = that.getRecipient();
|
||||||
this.body = that.body;
|
this.body = that.body;
|
||||||
|
@ -113,6 +96,25 @@ public class OutgoingMediaMessage {
|
||||||
this.mentions.addAll(that.mentions);
|
this.mentions.addAll(that.mentions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public @NonNull OutgoingMediaMessage withExpiry(long expiresIn) {
|
||||||
|
return new OutgoingMediaMessage(
|
||||||
|
getRecipient(),
|
||||||
|
body,
|
||||||
|
attachments,
|
||||||
|
sentTimeMillis,
|
||||||
|
subscriptionId,
|
||||||
|
expiresIn,
|
||||||
|
viewOnce,
|
||||||
|
distributionType,
|
||||||
|
outgoingQuote,
|
||||||
|
contacts,
|
||||||
|
linkPreviews,
|
||||||
|
mentions,
|
||||||
|
networkFailures,
|
||||||
|
identityKeyMismatches
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public Recipient getRecipient() {
|
public Recipient getRecipient() {
|
||||||
return recipient;
|
return recipient;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,4 +36,19 @@ public class OutgoingSecureMediaMessage extends OutgoingMediaMessage {
|
||||||
public boolean isSecure() {
|
public boolean isSecure() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull OutgoingMediaMessage withExpiry(long expiresIn) {
|
||||||
|
return new OutgoingSecureMediaMessage(getRecipient(),
|
||||||
|
getBody(),
|
||||||
|
getAttachments(),
|
||||||
|
getSentTimeMillis(),
|
||||||
|
getDistributionType(),
|
||||||
|
getExpiresIn(),
|
||||||
|
isViewOnce(),
|
||||||
|
getOutgoingQuote(),
|
||||||
|
getSharedContacts(),
|
||||||
|
getLinkPreviews(),
|
||||||
|
getMentions());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.database.model.Mention;
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.mediasend.Media;
|
import org.thoughtcrime.securesms.mediasend.Media;
|
||||||
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage;
|
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage;
|
||||||
|
import org.thoughtcrime.securesms.mms.OutgoingSecureMediaMessage;
|
||||||
import org.thoughtcrime.securesms.mms.Slide;
|
import org.thoughtcrime.securesms.mms.Slide;
|
||||||
import org.thoughtcrime.securesms.mms.SlideDeck;
|
import org.thoughtcrime.securesms.mms.SlideDeck;
|
||||||
import org.thoughtcrime.securesms.mms.SlideFactory;
|
import org.thoughtcrime.securesms.mms.SlideFactory;
|
||||||
|
@ -26,6 +27,7 @@ import org.thoughtcrime.securesms.mms.StickerSlide;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||||
|
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;
|
||||||
|
@ -176,7 +178,12 @@ public final class MultiShareSender {
|
||||||
: Collections.emptyList(),
|
: Collections.emptyList(),
|
||||||
validatedMentions);
|
validatedMentions);
|
||||||
|
|
||||||
MessageSender.send(context, outgoingMediaMessage, threadId, forceSms, null);
|
if (recipient.isRegistered() && !forceSms) {
|
||||||
|
MessageSender.send(context, new OutgoingSecureMediaMessage(outgoingMediaMessage), threadId, false, null);
|
||||||
|
} else {
|
||||||
|
MessageSender.send(context, outgoingMediaMessage, threadId, forceSms, null);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void sendTextMessage(@NonNull Context context,
|
private static void sendTextMessage(@NonNull Context context,
|
||||||
|
@ -187,7 +194,13 @@ public final class MultiShareSender {
|
||||||
long expiresIn,
|
long expiresIn,
|
||||||
int subscriptionId)
|
int subscriptionId)
|
||||||
{
|
{
|
||||||
OutgoingTextMessage outgoingTextMessage = new OutgoingTextMessage(recipient, multiShareArgs.getDraftText(), expiresIn, subscriptionId);
|
|
||||||
|
final OutgoingTextMessage outgoingTextMessage;
|
||||||
|
if (recipient.isRegistered() && !forceSms) {
|
||||||
|
outgoingTextMessage = new OutgoingEncryptedMessage(recipient, multiShareArgs.getDraftText(), expiresIn);
|
||||||
|
} else {
|
||||||
|
outgoingTextMessage = new OutgoingTextMessage(recipient, multiShareArgs.getDraftText(), expiresIn, subscriptionId);
|
||||||
|
}
|
||||||
|
|
||||||
MessageSender.send(context, outgoingTextMessage, threadId, forceSms, null);
|
MessageSender.send(context, outgoingTextMessage, threadId, forceSms, null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -379,14 +379,14 @@ public class MessageSender {
|
||||||
|
|
||||||
private static @NonNull OutgoingTextMessage applyUniversalExpireTimerIfNecessary(@NonNull Context context, @NonNull Recipient recipient, @NonNull OutgoingTextMessage outgoingTextMessage, long threadId) {
|
private static @NonNull OutgoingTextMessage applyUniversalExpireTimerIfNecessary(@NonNull Context context, @NonNull Recipient recipient, @NonNull OutgoingTextMessage outgoingTextMessage, long threadId) {
|
||||||
if (outgoingTextMessage.getExpiresIn() == 0 && RecipientUtil.setAndSendUniversalExpireTimerIfNecessary(context, recipient, threadId)) {
|
if (outgoingTextMessage.getExpiresIn() == 0 && RecipientUtil.setAndSendUniversalExpireTimerIfNecessary(context, recipient, threadId)) {
|
||||||
return new OutgoingTextMessage(outgoingTextMessage, TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
return outgoingTextMessage.withExpiry(TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
||||||
}
|
}
|
||||||
return outgoingTextMessage;
|
return outgoingTextMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static @NonNull OutgoingMediaMessage applyUniversalExpireTimerIfNecessary(@NonNull Context context, @NonNull Recipient recipient, @NonNull OutgoingMediaMessage outgoingMediaMessage, long threadId) {
|
private static @NonNull OutgoingMediaMessage applyUniversalExpireTimerIfNecessary(@NonNull Context context, @NonNull Recipient recipient, @NonNull OutgoingMediaMessage outgoingMediaMessage, long threadId) {
|
||||||
if (!outgoingMediaMessage.isExpirationUpdate() && outgoingMediaMessage.getExpiresIn() == 0 && RecipientUtil.setAndSendUniversalExpireTimerIfNecessary(context, recipient, threadId)) {
|
if (!outgoingMediaMessage.isExpirationUpdate() && outgoingMediaMessage.getExpiresIn() == 0 && RecipientUtil.setAndSendUniversalExpireTimerIfNecessary(context, recipient, threadId)) {
|
||||||
return new OutgoingMediaMessage(outgoingMediaMessage, TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
return outgoingMediaMessage.withExpiry(TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
||||||
}
|
}
|
||||||
return outgoingMediaMessage;
|
return outgoingMediaMessage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package org.thoughtcrime.securesms.sms;
|
package org.thoughtcrime.securesms.sms;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
|
|
||||||
public class OutgoingEncryptedMessage extends OutgoingTextMessage {
|
public class OutgoingEncryptedMessage extends OutgoingTextMessage {
|
||||||
|
@ -17,6 +19,11 @@ public class OutgoingEncryptedMessage extends OutgoingTextMessage {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull OutgoingTextMessage withExpiry(long expiresIn) {
|
||||||
|
return new OutgoingEncryptedMessage(getRecipient(), getMessageBody(), expiresIn);
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OutgoingTextMessage withBody(String body) {
|
public OutgoingTextMessage withBody(String body) {
|
||||||
return new OutgoingEncryptedMessage(this, body);
|
return new OutgoingEncryptedMessage(this, body);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package org.thoughtcrime.securesms.sms;
|
package org.thoughtcrime.securesms.sms;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
|
|
||||||
|
@ -28,8 +30,8 @@ public class OutgoingTextMessage {
|
||||||
this.message = body;
|
this.message = body;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OutgoingTextMessage(OutgoingTextMessage base, long expiresIn) {
|
public @NonNull OutgoingTextMessage withExpiry(long expiresIn) {
|
||||||
this(base.getRecipient(), base.getMessageBody(), expiresIn, base.getSubscriptionId());
|
return new OutgoingTextMessage(recipient, message, expiresIn, subscriptionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getExpiresIn() {
|
public long getExpiresIn() {
|
||||||
|
|
Ładowanie…
Reference in New Issue