Handle multishare of text.

fork-5.53.8
Alex Hart 2022-07-27 13:30:37 -03:00 zatwierdzone przez Cody Henthorne
rodzic c907a01077
commit ad0acc640b
1 zmienionych plików z 16 dodań i 1 usunięć

Wyświetl plik

@ -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<Uri>(Intent.EXTRA_STREAM)?.let {
UnresolvedShareData.ExternalMultiShare(it)
} ?: error("ACTION_SEND_MULTIPLE with EXTRA_STREAM but the EXTRA_STREAM was null")