Fix issue where forwarded messages would show unlock icon.
This commit is contained in:
parent
fec4a7692d
commit
7bede7e98a
6 changed files with 62 additions and 23 deletions
|
@ -78,23 +78,6 @@ public class OutgoingMediaMessage {
|
|||
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) {
|
||||
this.recipient = that.getRecipient();
|
||||
this.body = that.body;
|
||||
|
@ -113,6 +96,25 @@ public class OutgoingMediaMessage {
|
|||
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() {
|
||||
return recipient;
|
||||
}
|
||||
|
|
|
@ -36,4 +36,19 @@ public class OutgoingSecureMediaMessage extends OutgoingMediaMessage {
|
|||
public boolean isSecure() {
|
||||
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.mediasend.Media;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingSecureMediaMessage;
|
||||
import org.thoughtcrime.securesms.mms.Slide;
|
||||
import org.thoughtcrime.securesms.mms.SlideDeck;
|
||||
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.RecipientId;
|
||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||
import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage;
|
||||
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
||||
import org.thoughtcrime.securesms.util.MessageUtil;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
@ -176,7 +178,12 @@ public final class MultiShareSender {
|
|||
: Collections.emptyList(),
|
||||
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,
|
||||
|
@ -187,7 +194,13 @@ public final class MultiShareSender {
|
|||
long expiresIn,
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -379,14 +379,14 @@ public class MessageSender {
|
|||
|
||||
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)) {
|
||||
return new OutgoingTextMessage(outgoingTextMessage, TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
||||
return outgoingTextMessage.withExpiry(TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
||||
}
|
||||
return outgoingTextMessage;
|
||||
}
|
||||
|
||||
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)) {
|
||||
return new OutgoingMediaMessage(outgoingMediaMessage, TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
||||
return outgoingMediaMessage.withExpiry(TimeUnit.SECONDS.toMillis(SignalStore.settings().getUniversalExpireTimer()));
|
||||
}
|
||||
return outgoingMediaMessage;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.thoughtcrime.securesms.sms;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
|
||||
public class OutgoingEncryptedMessage extends OutgoingTextMessage {
|
||||
|
@ -17,6 +19,11 @@ public class OutgoingEncryptedMessage extends OutgoingTextMessage {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull OutgoingTextMessage withExpiry(long expiresIn) {
|
||||
return new OutgoingEncryptedMessage(getRecipient(), getMessageBody(), expiresIn);
|
||||
};
|
||||
|
||||
@Override
|
||||
public OutgoingTextMessage withBody(String body) {
|
||||
return new OutgoingEncryptedMessage(this, body);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.thoughtcrime.securesms.sms;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
|
||||
|
@ -28,8 +30,8 @@ public class OutgoingTextMessage {
|
|||
this.message = body;
|
||||
}
|
||||
|
||||
public OutgoingTextMessage(OutgoingTextMessage base, long expiresIn) {
|
||||
this(base.getRecipient(), base.getMessageBody(), expiresIn, base.getSubscriptionId());
|
||||
public @NonNull OutgoingTextMessage withExpiry(long expiresIn) {
|
||||
return new OutgoingTextMessage(recipient, message, expiresIn, subscriptionId);
|
||||
}
|
||||
|
||||
public long getExpiresIn() {
|
||||
|
|
Loading…
Add table
Reference in a new issue