Merge pull request #4745 from johnjohndoe/sharecompat

Use ShareCompat.IntentBuilder for sharing content
This commit is contained in:
Benoit Marty 2022-01-03 16:11:08 +01:00 committed by GitHub
commit 9534abef19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 10 deletions

1
changelog.d/4745.misc Normal file
View File

@ -0,0 +1 @@
Open share UI provides by the system when sharing media or text.

View File

@ -305,26 +305,28 @@ fun shareMedia(context: Context, file: File, mediaMimeType: String?) {
return
}
val sendIntent = ShareCompat.IntentBuilder(context)
val chooserIntent = ShareCompat.IntentBuilder(context)
.setType(mediaMimeType)
.setStream(mediaUri)
.getIntent()
.setChooserTitle(R.string.share)
.createChooserIntent()
sendShareIntent(context, sendIntent)
createChooser(context, chooserIntent)
}
fun shareText(context: Context, text: String) {
val sendIntent = Intent()
sendIntent.action = Intent.ACTION_SEND
sendIntent.type = "text/plain"
sendIntent.putExtra(Intent.EXTRA_TEXT, text)
val chooserIntent = ShareCompat.IntentBuilder(context)
.setType("text/plain")
.setText(text)
.setChooserTitle(R.string.share)
.createChooserIntent()
sendShareIntent(context, sendIntent)
createChooser(context, chooserIntent)
}
private fun sendShareIntent(context: Context, intent: Intent) {
private fun createChooser(context: Context, intent: Intent) {
try {
context.startActivity(Intent.createChooser(intent, context.getString(R.string.share)))
context.startActivity(intent)
} catch (activityNotFoundException: ActivityNotFoundException) {
context.toast(R.string.error_no_external_application_found)
}