From 687192f071abd39ffcf342fa74dad6c10b8930b9 Mon Sep 17 00:00:00 2001 From: Fumiaki Yoshimatsu Date: Fri, 19 Feb 2021 16:17:30 -0500 Subject: [PATCH] Fix crash when draft text is null. Fixes #10913 --- .../securesms/mediasend/MediaSendActivity.java | 10 +++++----- .../thoughtcrime/securesms/sharing/MultiShareArgs.java | 2 +- .../securesms/sharing/MultiShareSender.java | 6 ++++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java index 8b574a89e4..6141dfe0cb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java @@ -196,11 +196,11 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med return intent; } - public static Intent buildShareIntent(@NonNull Context context, - @NonNull List media, - @NonNull List recipientIds, - @NonNull CharSequence body, - @NonNull TransportOption transportOption) + public static Intent buildShareIntent(@NonNull Context context, + @NonNull List media, + @NonNull List recipientIds, + @Nullable CharSequence body, + @NonNull TransportOption transportOption) { Intent intent = new Intent(context, MediaSendActivity.class); intent.putParcelableArrayListExtra(KEY_MEDIA, new ArrayList<>(media)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareArgs.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareArgs.java index 1fef5bb3f9..ef36fb1d4e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareArgs.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareArgs.java @@ -82,7 +82,7 @@ public final class MultiShareArgs implements Parcelable { return dataType; } - public String getDraftText() { + public @Nullable String getDraftText() { return draftText; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java index 9488efffb4..ea4ffd0772 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java @@ -72,7 +72,9 @@ public final class MultiShareSender { boolean forceSms = recipient.isForceSmsSelection() && transport.isSms(); int subscriptionId = transport.getSimSubscriptionId().or(-1); long expiresIn = recipient.getExpireMessages() * 1000L; - boolean needsSplit = !transport.isSms() && message.length() > transport.calculateCharacters(message).maxPrimaryMessageSize; + boolean needsSplit = !transport.isSms() && + message != null && + message.length() > transport.calculateCharacters(message).maxPrimaryMessageSize; boolean isMediaMessage = !multiShareArgs.getMedia().isEmpty() || (multiShareArgs.getDataUri() != null && multiShareArgs.getDataUri() != Uri.EMPTY) || multiShareArgs.getStickerLocator() != null || @@ -132,7 +134,7 @@ public final class MultiShareSender { int subscriptionId) { String body = multiShareArgs.getDraftText(); - if (transportOption.isType(TransportOption.Type.TEXTSECURE) && !forceSms) { + if (transportOption.isType(TransportOption.Type.TEXTSECURE) && !forceSms && body != null) { MessageUtil.SplitResult splitMessage = MessageUtil.getSplitMessage(context, body, transportOption.calculateCharacters(body).maxPrimaryMessageSize); body = splitMessage.getBody();