From 2de5b3c275d4e525cacd32440189c36f91beb0e9 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 12 Sep 2023 23:58:18 -0500 Subject: [PATCH] Use share text when subject is missing --- .../astrid/activity/ShareLinkActivity.kt | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt index 9fff75711..782cf6a16 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt @@ -33,9 +33,8 @@ class ShareLinkActivity : InjectingAppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val intent = intent - val action = intent.action - when { - Intent.ACTION_PROCESS_TEXT == action -> lifecycleScope.launch { + when (intent.action) { + Intent.ACTION_PROCESS_TEXT -> lifecycleScope.launch { val text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT) if (text != null) { val task = taskCreator.createWithValues(text.toString()) @@ -44,10 +43,9 @@ class ShareLinkActivity : InjectingAppCompatActivity() { } finish() } - Intent.ACTION_SEND == action -> lifecycleScope.launch { - val subject = intent.getStringExtra(Intent.EXTRA_SUBJECT) - val task = taskCreator.createWithValues(subject) - task.notes = intent.getStringExtra(Intent.EXTRA_TEXT) + + Intent.ACTION_SEND -> lifecycleScope.launch { + val task = taskCreator.create(intent) if (hasAttachments(intent)) { task.putTransitory(TaskAttachment.KEY, copyAttachment(intent)) firebase.addTask("share_attachment") @@ -57,9 +55,9 @@ class ShareLinkActivity : InjectingAppCompatActivity() { editTask(task) finish() } - Intent.ACTION_SEND_MULTIPLE == action -> lifecycleScope.launch { - val task = taskCreator.createWithValues(intent.getStringExtra(Intent.EXTRA_SUBJECT)) - task.notes = intent.getStringExtra(Intent.EXTRA_TEXT) + + Intent.ACTION_SEND_MULTIPLE -> lifecycleScope.launch { + val task = taskCreator.create(intent) if (hasAttachments(intent)) { task.putTransitory(TaskAttachment.KEY, copyMultipleAttachments(intent)) firebase.addTask("share_multiple_attachments") @@ -69,11 +67,13 @@ class ShareLinkActivity : InjectingAppCompatActivity() { editTask(task) finish() } - Intent.ACTION_VIEW == action -> lifecycleScope.launch { + + Intent.ACTION_VIEW -> lifecycleScope.launch { editTask(taskCreator.createWithValues("")) firebase.addTask("action_view") finish() } + else -> { Timber.e("Unhandled intent: %s", intent) finish() @@ -111,5 +111,16 @@ class ShareLinkActivity : InjectingAppCompatActivity() { companion object { private val ATTACHMENT_TYPES = listOf("image/", "application/", "audio/") + + private suspend fun TaskCreator.create(intent: Intent): Task { + val subject = intent.getStringExtra(Intent.EXTRA_SUBJECT) + val hasSubject = subject?.isNotBlank() == true + val text = intent.getStringExtra(Intent.EXTRA_TEXT) + val task = createWithValues(if (hasSubject) subject else text) + if (hasSubject) { + task.notes = text + } + return task + } } } \ No newline at end of file