From a6d7b0c7bf11069aa18ec51ef09322babe79b1e2 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Mon, 20 Mar 2023 15:59:38 -0400 Subject: [PATCH] Fix crash in multishare flow. --- .../securesms/conversation/mutiselect/Multiselect.kt | 5 +++-- .../org/thoughtcrime/securesms/sharing/MultiShareSender.java | 2 +- .../org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/Multiselect.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/Multiselect.kt index 7dc8a66e13..9895e250eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/Multiselect.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/Multiselect.kt @@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.conversation.ConversationMessage import org.thoughtcrime.securesms.conversation.MessageSendType import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.MediaConstraints import org.thoughtcrime.securesms.mms.SlideDeck import org.thoughtcrime.securesms.mms.TextSlide @@ -79,7 +80,7 @@ object Multiselect { */ fun isMmsSupported(context: Context, mediaUri: Uri, mediaType: String, mediaSize: Long): Boolean { val canReadPhoneState = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED - if (!Util.isDefaultSmsProvider(context) || !canReadPhoneState || !Util.isMmsCapable(context)) { + if (!Util.isDefaultSmsProvider(context) || !canReadPhoneState || !Util.isMmsCapable(context) || !SignalStore.misc().smsExportPhase.allowSmsFeatures()) { return false } @@ -102,7 +103,7 @@ object Multiselect { */ private fun isMmsSupported(context: Context, attachment: Attachment): Boolean { val canReadPhoneState = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED - if (!Util.isDefaultSmsProvider(context) || !canReadPhoneState || !Util.isMmsCapable(context)) { + if (!Util.isDefaultSmsProvider(context) || !canReadPhoneState || !Util.isMmsCapable(context) || !SignalStore.misc().smsExportPhase.allowSmsFeatures()) { return false } 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 3b0aa36283..079134acc2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java @@ -191,7 +191,7 @@ public final class MultiShareSender { } public static @NonNull MessageSendType resolveTransportOption(@NonNull Context context, boolean forceSms) { - if (forceSms) { + if (forceSms && SignalStore.misc().getSmsExportPhase().allowSmsFeatures()) { return MessageSendType.getFirstForTransport(context, false, MessageSendType.TransportType.SMS); } else { return MessageSendType.SignalMessageSendType.INSTANCE; diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt index 792c1f310e..1ea66dbab3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt @@ -15,6 +15,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.attachments.Attachment import org.thoughtcrime.securesms.attachments.UriAttachment import org.thoughtcrime.securesms.conversation.MessageSendType +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.MediaSendConstants import org.thoughtcrime.securesms.mms.MediaConstraints @@ -176,7 +177,7 @@ class ShareRepository(context: Context) { private fun isMmsSupported(context: Context, attachment: Attachment): Boolean { val canReadPhoneState = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED - if (!Util.isDefaultSmsProvider(context) || !canReadPhoneState || !Util.isMmsCapable(context)) { + if (!Util.isDefaultSmsProvider(context) || !canReadPhoneState || !Util.isMmsCapable(context) || !SignalStore.misc().smsExportPhase.allowSmsFeatures()) { return false }