mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 20:48:43 +00:00
Handle multishare of text.
This commit is contained in:
committed by
Cody Henthorne
parent
c907a01077
commit
ad0acc640b
@@ -4,6 +4,7 @@ import android.app.Activity
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.text.SpannableStringBuilder
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.activity.result.ActivityResultLauncher
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
@@ -126,7 +127,21 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C
|
|||||||
|
|
||||||
private fun getUnresolvedShareData(): UnresolvedShareData {
|
private fun getUnresolvedShareData(): UnresolvedShareData {
|
||||||
return when {
|
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<Uri>(Intent.EXTRA_STREAM)?.let {
|
intent.getParcelableArrayListExtra<Uri>(Intent.EXTRA_STREAM)?.let {
|
||||||
UnresolvedShareData.ExternalMultiShare(it)
|
UnresolvedShareData.ExternalMultiShare(it)
|
||||||
} ?: error("ACTION_SEND_MULTIPLE with EXTRA_STREAM but the EXTRA_STREAM was null")
|
} ?: error("ACTION_SEND_MULTIPLE with EXTRA_STREAM but the EXTRA_STREAM was null")
|
||||||
|
|||||||
Reference in New Issue
Block a user