Merge pull request #3965 from cketti/improve_sharing

Use ShareCompat.IntentBuilder for sharing images
This commit is contained in:
Benoit Marty 2021-09-06 10:07:37 +02:00 committed by GitHub
commit e1f7ab8669
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 12 deletions

1
changelog.d/3965.bugfix Normal file
View File

@ -0,0 +1 @@
Enable image preview in Android's share sheet (Android 11+)

View File

@ -36,6 +36,7 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent
import androidx.browser.customtabs.CustomTabsSession
import androidx.core.app.ShareCompat
import androidx.core.content.FileProvider
import androidx.core.content.getSystemService
import im.vector.app.BuildConfig
@ -297,23 +298,19 @@ fun openMedia(activity: Activity, savedMediaPath: String, mimeType: String) {
}
fun shareMedia(context: Context, file: File, mediaMimeType: String?) {
var mediaUri: Uri? = null
try {
mediaUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileProvider", file)
val mediaUri = try {
FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileProvider", file)
} catch (e: Exception) {
Timber.e(e, "onMediaAction Selected File cannot be shared")
return
}
if (null != mediaUri) {
val sendIntent = Intent()
sendIntent.action = Intent.ACTION_SEND
// Grant temporary read permission to the content URI
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
sendIntent.type = mediaMimeType
sendIntent.putExtra(Intent.EXTRA_STREAM, mediaUri)
val sendIntent = ShareCompat.IntentBuilder(context)
.setType(mediaMimeType)
.setStream(mediaUri)
.getIntent()
sendShareIntent(context, sendIntent)
}
sendShareIntent(context, sendIntent)
}
fun shareText(context: Context, text: String) {