From ad0acc640b0b043f995485fa9054e4ad164048ff Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 27 Jul 2022 13:30:37 -0300 Subject: [PATCH] Handle multishare of text. --- .../securesms/sharing/v2/ShareActivity.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 b367d86570..8dd131b850 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 @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Intent import android.net.Uri import android.os.Bundle +import android.text.SpannableStringBuilder import android.view.ViewGroup import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts @@ -126,7 +127,21 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C private fun getUnresolvedShareData(): UnresolvedShareData { return when { - intent.action == Intent.ACTION_SEND_MULTIPLE -> { + intent.action == Intent.ACTION_SEND_MULTIPLE && intent.hasExtra(Intent.EXTRA_TEXT) -> { + intent.getCharSequenceArrayListExtra(Intent.EXTRA_TEXT)?.let { list -> + val stringBuilder = SpannableStringBuilder() + list.forEachIndexed { index, text -> + stringBuilder.append(text) + + if (index != list.lastIndex) { + stringBuilder.append("\n") + } + } + + UnresolvedShareData.ExternalPrimitiveShare(stringBuilder) + } ?: error("ACTION_SEND_MULTIPLE with EXTRA_TEXT but the EXTRA_TEXT was null") + } + intent.action == Intent.ACTION_SEND_MULTIPLE && intent.hasExtra(Intent.EXTRA_STREAM) -> { intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)?.let { UnresolvedShareData.ExternalMultiShare(it) } ?: error("ACTION_SEND_MULTIPLE with EXTRA_STREAM but the EXTRA_STREAM was null")