diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7af30ef4e..bef743ed0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,14 @@ + + + + + + + + = buildSet { + packageManager + .queryIntentActivities(intent, 0) + .forEach { add(it.activityInfo.packageName) } + } + + val mainActionIntent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_EMAIL).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } + val mainPackageNames = queryIntentSupportedPackageNames(mainActionIntent) + + val extraEmailAppIntents = queryIntentSupportedPackageNames(Intent(Intent.ACTION_VIEW, Uri.parse("mailto:"))) + .filter { it !in mainPackageNames } + .mapNotNull { packageName -> + packageManager.getLaunchIntentForPackage(packageName) + } - safeStartActivity(Intent.createChooser(intent, getString(R.string.buttonOpenMailApp))) + val chooserIntent = Intent.createChooser(mainActionIntent, getString(R.string.buttonOpenMailApp)).apply { + putExtra(Intent.EXTRA_INITIAL_INTENTS, extraEmailAppIntents.toTypedArray()) + } + safeStartActivity(chooserIntent) } fun Context.copyText(text: String, showSnackbar: (String) -> Unit) {