From 55a7dec6e6fe3b056a841ac0ebc60fea33c795fb Mon Sep 17 00:00:00 2001 From: Oluwadara Abijo Date: Tue, 25 Nov 2025 23:54:52 +0100 Subject: [PATCH 1/2] feat(ADFA-2097): Do not show chooser when sending feedback email --- .../com/itsaky/androidide/utils/FeedbackEmailHandler.kt | 7 +++---- .../java/com/itsaky/androidide/utils/FeedbackManager.kt | 4 +--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt b/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt index 63cf0b4395..acd3f11479 100644 --- a/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt +++ b/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt @@ -153,11 +153,10 @@ class FeedbackEmailHandler( return when { // No screenshot or log file (if both files failed to be created) attachmentUris.isEmpty() -> { - Intent(Intent.ACTION_SEND).apply { + Intent(Intent.ACTION_SENDTO).apply { putExtra(Intent.EXTRA_EMAIL, arrayOf(emailRecipient)) putExtra(Intent.EXTRA_SUBJECT, subject) putExtra(Intent.EXTRA_TEXT, body) - type = "*/*" } } // Both screenshot and log file @@ -168,7 +167,7 @@ class FeedbackEmailHandler( putExtra(Intent.EXTRA_TEXT, body) putParcelableArrayListExtra(Intent.EXTRA_STREAM, ArrayList(attachmentUris)) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - type = "*/*" + type = "message/rfc822" } } else -> { @@ -179,7 +178,7 @@ class FeedbackEmailHandler( putExtra(Intent.EXTRA_TEXT, body) putExtra(Intent.EXTRA_STREAM, attachmentUris.first()) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - type = "*/*" + type = "message/rfc822" } } } diff --git a/common/src/main/java/com/itsaky/androidide/utils/FeedbackManager.kt b/common/src/main/java/com/itsaky/androidide/utils/FeedbackManager.kt index 0cfa87735a..9ef658b18c 100644 --- a/common/src/main/java/com/itsaky/androidide/utils/FeedbackManager.kt +++ b/common/src/main/java/com/itsaky/androidide/utils/FeedbackManager.kt @@ -321,9 +321,7 @@ object FeedbackManager { ) if (emailIntent.resolveActivity(activity.packageManager) != null) { - activity.startActivity( - Intent.createChooser(emailIntent, activity.getString(R.string.send_feedback)), - ) + activity.startActivity(emailIntent) } else { Toast .makeText(activity, From e9da0c214be572e99762bb85abf04b06677578bd Mon Sep 17 00:00:00 2001 From: Oluwadara Abijo Date: Wed, 26 Nov 2025 13:16:48 +0100 Subject: [PATCH 2/2] fix(ADFA-2097): Set intent data --- .../androidide/utils/FeedbackEmailHandler.kt | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt b/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt index acd3f11479..5751497103 100644 --- a/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt +++ b/common/src/main/java/com/itsaky/androidide/utils/FeedbackEmailHandler.kt @@ -10,6 +10,7 @@ import android.os.Looper import android.view.PixelCopy import androidx.core.content.FileProvider import androidx.core.graphics.createBitmap +import androidx.core.net.toUri import com.itsaky.androidide.common.R import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -133,9 +134,7 @@ class FeedbackEmailHandler( screenshotUri?.let { attachmentUris.add(it) } logContentUri?.let { attachmentUris.add(it) } - val hasMultipleAttachments = logContentUri != null && screenshotUri != null return getIntentBasedOnAttachments( - hasMultipleAttachments = hasMultipleAttachments, emailRecipient = emailRecipient, subject = subject, body = body, @@ -144,7 +143,6 @@ class FeedbackEmailHandler( } fun getIntentBasedOnAttachments( - hasMultipleAttachments: Boolean, emailRecipient: String, subject: String, body: String, @@ -154,13 +152,14 @@ class FeedbackEmailHandler( // No screenshot or log file (if both files failed to be created) attachmentUris.isEmpty() -> { Intent(Intent.ACTION_SENDTO).apply { + data = "mailto:".toUri() putExtra(Intent.EXTRA_EMAIL, arrayOf(emailRecipient)) putExtra(Intent.EXTRA_SUBJECT, subject) putExtra(Intent.EXTRA_TEXT, body) } } - // Both screenshot and log file - hasMultipleAttachments -> { + // Screenshot and/or log file + else -> { Intent(Intent.ACTION_SEND_MULTIPLE).apply { putExtra(Intent.EXTRA_EMAIL, arrayOf(emailRecipient)) putExtra(Intent.EXTRA_SUBJECT, subject) @@ -170,17 +169,6 @@ class FeedbackEmailHandler( type = "message/rfc822" } } - else -> { - // Just screenshot - Intent(Intent.ACTION_SEND).apply { - putExtra(Intent.EXTRA_EMAIL, arrayOf(emailRecipient)) - putExtra(Intent.EXTRA_SUBJECT, subject) - putExtra(Intent.EXTRA_TEXT, body) - putExtra(Intent.EXTRA_STREAM, attachmentUris.first()) - addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - type = "message/rfc822" - } - } } }