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()