Remove deprecated SMS fields from recipient table.

This commit is contained in:
Greyson Parrelli
2023-07-31 15:47:27 -04:00
parent e7972d4903
commit e3ec53c2d0
52 changed files with 34 additions and 2044 deletions

View File

@@ -108,9 +108,7 @@ public final class MultiShareSender {
long threadId = SignalDatabase.threads().getOrCreateThreadIdFor(recipient);
List<Mention> mentions = getValidMentionsForRecipient(recipient, multiShareArgs.getMentions());
MessageSendType sendType = resolveTransportOption(context, recipient);
boolean forceSms = recipient.isForceSmsSelection() && sendType.usesSmsTransport();
int subscriptionId = sendType.getSimSubscriptionIdOr(-1);
MessageSendType sendType = MessageSendType.SignalMessageSendType.INSTANCE;
long expiresIn = TimeUnit.SECONDS.toMillis(recipient.getExpiresInSeconds());
List<Contact> contacts = multiShareArgs.getSharedContacts();
boolean needsSplit = !sendType.usesSmsTransport() &&
@@ -139,10 +137,8 @@ public final class MultiShareSender {
slideDeck,
sendType,
threadId,
forceSms,
expiresIn,
multiShareArgs.isViewOnce(),
subscriptionId,
mentions,
recipientSearchKey.isStory(),
sentTimestamp,
@@ -154,7 +150,7 @@ public final class MultiShareSender {
} else if (recipientSearchKey.isStory()) {
results.add(new MultiShareSendResult(recipientSearchKey, MultiShareSendResult.Type.INVALID_SHARE_TO_STORY));
} else {
sendTextMessage(context, multiShareArgs, recipient, threadId, forceSms, expiresIn, subscriptionId);
sendTextMessage(context, multiShareArgs, recipient, threadId, expiresIn);
results.add(new MultiShareSendResult(recipientSearchKey, MultiShareSendResult.Type.SUCCESS));
}
@@ -179,39 +175,14 @@ public final class MultiShareSender {
return new MultiShareSendResultCollection(results);
}
public static @NonNull MessageSendType getWorstTransportOption(@NonNull Context context, @NonNull Set<ContactSearchKey.RecipientSearchKey> recipientSearchKeys) {
for (ContactSearchKey.RecipientSearchKey recipientSearchKey : recipientSearchKeys) {
MessageSendType type = resolveTransportOption(context, Recipient.resolved(recipientSearchKey.getRecipientId()).isForceSmsSelection() && !recipientSearchKey.isStory());
if (type.usesSmsTransport()) {
return type;
}
}
return MessageSendType.SignalMessageSendType.INSTANCE;
}
private static @NonNull MessageSendType resolveTransportOption(@NonNull Context context, @NonNull Recipient recipient) {
return resolveTransportOption(context, !recipient.isDistributionList() && (recipient.isForceSmsSelection() || !recipient.isRegistered()));
}
public static @NonNull MessageSendType resolveTransportOption(@NonNull Context context, boolean forceSms) {
if (forceSms && SignalStore.misc().getSmsExportPhase().allowSmsFeatures()) {
return MessageSendType.getFirstForTransport(context, false, MessageSendType.TransportType.SMS);
} else {
return MessageSendType.SignalMessageSendType.INSTANCE;
}
}
private static void sendMediaMessageOrCollectStoryToBatch(@NonNull Context context,
@NonNull MultiShareArgs multiShareArgs,
@NonNull Recipient recipient,
@NonNull SlideDeck slideDeck,
@NonNull MessageSendType sendType,
long threadId,
boolean forceSms,
long expiresIn,
boolean isViewOnce,
int subscriptionId,
@NonNull List<Mention> validatedMentions,
boolean isStory,
@NonNull MultiShareTimestampProvider sentTimestamps,
@@ -221,7 +192,7 @@ public final class MultiShareSender {
@NonNull List<Contact> contacts)
{
String body = multiShareArgs.getDraftText();
if (sendType.usesSignalTransport() && !forceSms && body != null) {
if (sendType.usesSignalTransport() && body != null) {
MessageUtil.SplitResult splitMessage = MessageUtil.getSplitMessage(context, body, sendType.calculateCharacters(body).maxPrimaryMessageSize);
body = splitMessage.getBody();
@@ -249,7 +220,6 @@ public final class MultiShareSender {
new SlideDeck(),
body,
sentTimestamps.getMillis(0),
subscriptionId,
0L,
false,
storyType.toTextStoryType(),
@@ -289,7 +259,6 @@ public final class MultiShareSender {
singletonDeck,
body,
sentTimestamps.getMillis(i),
subscriptionId,
0L,
false,
storyType,
@@ -307,7 +276,6 @@ public final class MultiShareSender {
slideDeck,
body,
sentTimestamps.getMillis(0),
subscriptionId,
expiresIn,
isViewOnce,
StoryType.NONE,
@@ -322,7 +290,7 @@ public final class MultiShareSender {
if (isStory) {
storiesToBatchSend.addAll(outgoingMessages);
} else if (shouldSendAsPush(recipient, forceSms)) {
} else if (shouldSendAsPush(recipient)) {
for (final OutgoingMessage outgoingMessage : outgoingMessages) {
MessageSender.send(context, outgoingMessage.makeSecure(), threadId, SendType.SIGNAL, null, null);
}
@@ -399,20 +367,18 @@ public final class MultiShareSender {
@NonNull MultiShareArgs multiShareArgs,
@NonNull Recipient recipient,
long threadId,
boolean forceSms,
long expiresIn,
int subscriptionId)
long expiresIn)
{
String body = multiShareArgs.getDraftText() == null ? "" : multiShareArgs.getDraftText();
OutgoingMessage outgoingMessage;
if (shouldSendAsPush(recipient, forceSms)) {
if (shouldSendAsPush(recipient)) {
outgoingMessage = OutgoingMessage.text(recipient, body, expiresIn, System.currentTimeMillis(), multiShareArgs.getBodyRanges());
} else {
outgoingMessage = OutgoingMessage.sms(recipient, body, subscriptionId);
outgoingMessage = OutgoingMessage.sms(recipient, body);
}
MessageSender.send(context, outgoingMessage, threadId, forceSms ? SendType.SMS : SendType.SIGNAL, null, null);
MessageSender.send(context, outgoingMessage, threadId, SendType.SIGNAL, null, null);
}
private static @NonNull OutgoingMessage generateTextStory(@NonNull Context context,
@@ -458,10 +424,10 @@ public final class MultiShareSender {
return trimmed.replace(linkPreview.getUrl(), "").trim();
}
private static boolean shouldSendAsPush(@NonNull Recipient recipient, boolean forceSms) {
private static boolean shouldSendAsPush(@NonNull Recipient recipient) {
return recipient.isDistributionList() ||
recipient.isServiceIdOnly() ||
(recipient.isRegistered() && !forceSms);
recipient.isRegistered();
}
private static @NonNull SlideDeck buildSlideDeck(@NonNull Context context, @NonNull MultiShareArgs multiShareArgs) throws SlideNotFoundException {

View File

@@ -93,7 +93,7 @@ public class ShareInterstitialActivity extends PassphraseRequiredActivity {
return false;
}
return !recipient.isRegistered() || recipient.isForceSmsSelection();
return !recipient.isRegistered();
});
if (hasSms) {

View File

@@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.PassphraseRequiredActivity
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
import org.thoughtcrime.securesms.conversation.ConversationIntents
import org.thoughtcrime.securesms.conversation.MessageSendType
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFullScreenDialogFragment
@@ -271,7 +272,7 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C
val intent = share(
this,
MultiShareSender.getWorstTransportOption(this, multiShareArgs.recipientSearchKeys),
MessageSendType.SignalMessageSendType,
media,
multiShareArgs.recipientSearchKeys.toList(),
multiShareArgs.draftText,