Fix sharing

This commit is contained in:
Phillip Thelen 2020-02-04 15:34:48 +01:00
parent 8e6ccfa6c9
commit df4417d0a3
3 changed files with 15 additions and 8 deletions

View file

@ -323,9 +323,9 @@
<string name="add_invites">Add Invites</string>
<string name="email">Email</string>
<string name="share_using">Share using</string>o
<string name="share_levelup">I got to level %d in Habitica by improving my real-life habits!</string>
<string name="share_hatched">I just hatched a %1$s %2$s pet in Habitica by completing my real-life tasks!</string>
<string name="share_raised">I just gained a %1$s mount in Habitica by completing my real-life tasks!</string>
<string name="share_levelup">I got to level %d in #Habitica by improving my real-life habits!</string>
<string name="share_hatched">I just hatched a %1$s %2$s pet in #Habitica by completing my real-life tasks!</string>
<string name="share_raised">I just gained a %1$s mount in #Habitica by completing my real-life tasks!</string>
<string name="open_in_store">Open in play store</string>
<string name="change_class_confirmation">Are you sure you want to change your class? This will cost 3 gems.</string>
<string name="change_class_equipment_warning">Warning: You will no longer be able to buy equipment from the %s class.</string>

View file

@ -580,11 +580,13 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
sharingIntent.putExtra(Intent.EXTRA_TEXT, event.sharedMessage)
val f = BitmapUtils.saveToShareableFile("$filesDir/shared_images", "share.png", event.shareImage)
val fileUri = f?.let { FileProvider.getUriForFile(this, getString(R.string.content_provider), it) }
sharingIntent.putExtra(Intent.EXTRA_STREAM, fileUri)
val resInfoList = this.packageManager.queryIntentActivities(sharingIntent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
this.grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION)
if (fileUri != null) {
sharingIntent.putExtra(Intent.EXTRA_STREAM, fileUri)
val resInfoList = this.packageManager.queryIntentActivities(sharingIntent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
this.grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
}
startActivity(Intent.createChooser(sharingIntent, getString(R.string.share_using)))
}

View file

@ -9,6 +9,10 @@ object BitmapUtils {
var name = filename
try {
name = "$directory/$name"
val dirFile = File(directory)
if (!dirFile.exists()) {
dirFile.mkdir()
}
val out = FileOutputStream(name)
bmp.compress(Bitmap.CompressFormat.PNG, 100, out)
@ -16,6 +20,7 @@ object BitmapUtils {
out.close()
return File(name)
} catch (ignored: Exception) {
ignored.printStackTrace()
}
return null