mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-12-22 23:58:47 +01:00
Let ShareCompat.IntentBuilder create the chooser intent for sharing content.
+ Although the system's intent chooser normally takes care of cases when no app is found we still keep the safeguard here to be prepared for exotic devices behaving different. Signed-off-by: Tobias Preuss <tobias.preuss@googlemail.com>
This commit is contained in:
parent
70b07471cf
commit
74363ff823
1
changelog.d/4745.misc
Normal file
1
changelog.d/4745.misc
Normal file
@ -0,0 +1 @@
|
||||
Open share UI provides by the system when sharing media or text.
|
@ -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)
|
||||
.intent
|
||||
.setChooserTitle(R.string.share)
|
||||
.createChooserIntent()
|
||||
|
||||
sendShareIntent(context, sendIntent)
|
||||
createChooser(context, chooserIntent)
|
||||
}
|
||||
|
||||
fun shareText(context: Context, text: String) {
|
||||
val sendIntent = ShareCompat.IntentBuilder(context)
|
||||
val chooserIntent = ShareCompat.IntentBuilder(context)
|
||||
.setType("text/plain")
|
||||
.setText(text)
|
||||
.intent
|
||||
.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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user