diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ResolvedShareData.kt b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ResolvedShareData.kt index 9fdc307926..4a4138a553 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ResolvedShareData.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ResolvedShareData.kt @@ -21,10 +21,11 @@ sealed class ResolvedShareData { data class ExternalUri( val uri: Uri, val mimeType: String, + val text: CharSequence?, override val isMmsOrSmsSupported: Boolean ) : ResolvedShareData() { override fun toMultiShareArgs(): MultiShareArgs { - return MultiShareArgs.Builder(setOf()).withDataUri(uri).withDataType(mimeType).build() + return MultiShareArgs.Builder(setOf()).withDataUri(uri).withDataType(mimeType).withDraftText(text?.toString()).build() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareActivity.kt index f03eec1ffa..e7ba2433f1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareActivity.kt @@ -170,9 +170,13 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C } ?: Result.failure(IntentError.SEND_MULTIPLE_STREAM) } intent.action == Intent.ACTION_SEND && intent.hasExtra(Intent.EXTRA_STREAM) -> { - intent.getParcelableExtraCompat(Intent.EXTRA_STREAM, Uri::class.java)?.let { - Result.success(UnresolvedShareData.ExternalSingleShare(it, intent.type)) - } ?: extractSingleExtraTextFromIntent(IntentError.SEND_STREAM) + val uri: Uri? = intent.getParcelableExtraCompat(Intent.EXTRA_STREAM, Uri::class.java) + if (uri == null) { + extractSingleExtraTextFromIntent(IntentError.SEND_STREAM) + } else { + val text: CharSequence? = if (intent.hasExtra(Intent.EXTRA_TEXT)) intent.getCharSequenceExtra(Intent.EXTRA_TEXT) else null + Result.success(UnresolvedShareData.ExternalSingleShare(uri, intent.type, text)) + } } intent.action == Intent.ACTION_SEND && intent.hasExtra(Intent.EXTRA_TEXT) -> { extractSingleExtraTextFromIntent() 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 3461245a51..b1ec65510b 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 @@ -73,6 +73,7 @@ class ShareRepository(context: Context) { return ResolvedShareData.ExternalUri( uri = blobUri, mimeType = mimeType, + text = multiShareExternal.text, isMmsOrSmsSupported = isMmsSupported(appContext, asUriAttachment(blobUri, mimeType, size)) ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/UnresolvedShareData.kt b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/UnresolvedShareData.kt index 88a059c5b1..de55145080 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/UnresolvedShareData.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/UnresolvedShareData.kt @@ -4,6 +4,6 @@ import android.net.Uri sealed class UnresolvedShareData { data class ExternalMultiShare(val uris: List) : UnresolvedShareData() - data class ExternalSingleShare(val uri: Uri, val mimeType: String?) : UnresolvedShareData() + data class ExternalSingleShare(val uri: Uri, val mimeType: String?, val text: CharSequence?) : UnresolvedShareData() data class ExternalPrimitiveShare(val text: CharSequence) : UnresolvedShareData() }