From 3b77cc61da29ec2c84b505294ebba46060fc0191 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Thu, 19 Oct 2017 22:48:24 +0200 Subject: Fix file sharing --- .../de/danoeh/antennapod/core/util/ShareUtils.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'core/src/main/java') diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/ShareUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/ShareUtils.java index 887c0055c..343b4dc3b 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/ShareUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/ShareUtils.java @@ -3,13 +3,20 @@ package de.danoeh.antennapod.core.util; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.net.Uri; +import android.os.Build; +import android.support.v4.content.FileProvider; +import android.util.Log; + import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import java.io.File; +import java.util.List; /** Utility methods for sharing data */ public class ShareUtils { @@ -65,8 +72,18 @@ public class ShareUtils { public static void shareFeedItemFile(Context context, FeedMedia media) { Intent i = new Intent(Intent.ACTION_SEND); i.setType(media.getMime_type()); - i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(media.getLocalMediaUrl()))); + Uri fileUri = FileProvider.getUriForFile(context, "de.danoeh.antennapod.provider", + new File(media.getLocalMediaUrl())); + i.putExtra(Intent.EXTRA_STREAM, fileUri); i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) { + List resInfoList = context.getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY); + for (ResolveInfo resolveInfo : resInfoList) { + String packageName = resolveInfo.activityInfo.packageName; + context.grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + } context.startActivity(Intent.createChooser(i, context.getString(R.string.share_file_label))); + Log.e(TAG, "Foo"); } } -- cgit v1.2.3