mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Fix external share when it contains an image and text.
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ import android.net.Uri
|
||||
|
||||
sealed class UnresolvedShareData {
|
||||
data class ExternalMultiShare(val uris: List<Uri>) : 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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user