|
private fun onShare() { |
|
val sendIntent: Intent = Intent().apply { |
|
action = Intent.ACTION_SEND |
|
type = "text/plain" |
|
putExtra(Intent.EXTRA_TEXT, "Share default content") |
|
} |
|
val textEmail = "Share content use for email" |
|
val textSMS = "Share content use for sms" |
|
val textOther = "Share content for other app" |
|
|
|
activity?.run { |
|
try { |
|
val pm: PackageManager = packageManager |
|
val emailIntent = Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:")) |
|
val emailResInfo = pm.queryIntentActivities(emailIntent, 0) |
|
val arrayEmailPackage = arrayListOf<String>() |
|
for (i in emailResInfo.indices) { |
|
arrayEmailPackage.add(emailResInfo[i].activityInfo.packageName) |
|
} |
|
|
|
val resInfo = pm.queryIntentActivities(sendIntent, 0) |
|
val replacementExtra: MutableList<Pair<String, Bundle>> = ArrayList() |
|
for (i in resInfo.indices) { |
|
val ri = resInfo[i] |
|
val packageName = ri.activityInfo.packageName |
|
if (arrayEmailPackage.contains(packageName)) { |
|
replacementExtra.add( |
|
Pair(packageName, bundleOf(Intent.EXTRA_TEXT to textEmail)) |
|
) |
|
} else if (packageName.contains("mms") || packageName == "com.samsung.android.messaging" || packageName == "com.google.android.apps.messaging") { |
|
replacementExtra.add( |
|
Pair(packageName, bundleOf(Intent.EXTRA_TEXT to textSMS)) |
|
) |
|
} else { |
|
replacementExtra.add( |
|
Pair(packageName, bundleOf(Intent.EXTRA_TEXT to textOther)) |
|
) |
|
} |
|
} |
|
|
|
val chooser = Intent.createChooser(sendIntent, getString(R.string.share)) |
|
chooser.putExtra( |
|
Intent.EXTRA_REPLACEMENT_EXTRAS, |
|
bundleOf(*replacementExtra.toTypedArray()) |
|
) |
|
context?.startActivity(chooser) |
|
|
|
} catch (ex: Exception) { |
|
ex.printStackTrace() |
|
sendIntent.putExtra(Intent.EXTRA_TEXT, "Share default content") |
|
val shareIntent = Intent.createChooser(sendIntent, getString(R.string.share)) |
|
context?.startActivity(shareIntent) |
|
} |
|
} |
|
} |