From 3d075bdd65ac1722e2b62f0d43211b7de4f86b77 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 29 Aug 2022 10:47:47 -0300 Subject: [PATCH] Check for EXTRA_TEXT if we cannot parse EXTRA_STREAM. --- .../securesms/sharing/v2/ShareActivity.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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 368753fd89..2dfbd9bdcb 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 @@ -168,17 +168,25 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C intent.action == Intent.ACTION_SEND && intent.hasExtra(Intent.EXTRA_STREAM) -> { intent.getParcelableExtra(Intent.EXTRA_STREAM)?.let { Result.success(UnresolvedShareData.ExternalSingleShare(it, intent.type)) - } ?: Result.failure(IntentError.SEND_STREAM) + } ?: extractSingleExtraTextFromIntent(IntentError.SEND_STREAM) } intent.action == Intent.ACTION_SEND && intent.hasExtra(Intent.EXTRA_TEXT) -> { - intent.getCharSequenceExtra(Intent.EXTRA_TEXT)?.let { - Result.success(UnresolvedShareData.ExternalPrimitiveShare(it)) - } ?: Result.failure(IntentError.SEND_TEXT) + extractSingleExtraTextFromIntent() } else -> null } ?: Result.failure(IntentError.UNKNOWN) } + private fun extractSingleExtraTextFromIntent(fallbackError: IntentError = IntentError.UNKNOWN): Result { + return if (intent.hasExtra(Intent.EXTRA_TEXT)) { + intent.getCharSequenceExtra(Intent.EXTRA_TEXT)?.let { + Result.success(UnresolvedShareData.ExternalPrimitiveShare(it)) + } ?: Result.failure(IntentError.SEND_TEXT) + } else { + Result.failure(fallbackError) + } + } + private fun ensureFragment(resolvedShareData: ResolvedShareData) { if (!supportFragmentManager.isStateSaved && supportFragmentManager.fragments.none { it is MultiselectForwardFullScreenDialogFragment }) { supportFragmentManager.beginTransaction()