diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d2f06caf..b620e61f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -203,6 +203,15 @@
+
+
+
-
\ No newline at end of file
+
diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongShareDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongShareDialog.java
index 3a6e97fe..061c07b1 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongShareDialog.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongShareDialog.java
@@ -38,7 +38,7 @@ public class SongShareDialog extends DialogFragment {
public void onSelection(MaterialDialog materialDialog, View view, int i, CharSequence charSequence) {
switch (i) {
case 0:
- startActivity(Intent.createChooser(MusicUtil.createShareSongFileIntent(song), null));
+ startActivity(Intent.createChooser(MusicUtil.createShareSongFileIntent(song, getContext()), null));
break;
case 1:
getActivity().startActivity(
diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/menu/SongMenuHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/menu/SongMenuHelper.java
index a1767662..a3cedbd2 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/helper/menu/SongMenuHelper.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/helper/menu/SongMenuHelper.java
@@ -32,7 +32,7 @@ public class SongMenuHelper {
MusicUtil.setRingtone(activity, song.id);
return true;
case R.id.action_share:
- activity.startActivity(Intent.createChooser(MusicUtil.createShareSongFileIntent(song), null));
+ activity.startActivity(Intent.createChooser(MusicUtil.createShareSongFileIntent(song, activity), null));
return true;
case R.id.action_delete_from_device:
DeleteSongsDialog.create(song).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java
index 4f299565..61f3984a 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java
@@ -13,6 +13,7 @@ import android.provider.MediaStore;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.content.FileProvider;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
@@ -23,7 +24,6 @@ import com.kabouzeid.gramophone.loader.PlaylistLoader;
import com.kabouzeid.gramophone.loader.SongLoader;
import com.kabouzeid.gramophone.model.Artist;
import com.kabouzeid.gramophone.model.Playlist;
-import com.kabouzeid.gramophone.model.PlaylistSong;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics;
@@ -55,10 +55,11 @@ public class MusicUtil {
}
@NonNull
- public static Intent createShareSongFileIntent(@NonNull final Song song) {
+ public static Intent createShareSongFileIntent(@NonNull final Song song, Context context) {
return new Intent()
.setAction(Intent.ACTION_SEND)
- .putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + song.data))
+ .putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName(), new File(song.data)))
+ .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.setType("audio/*");
}
diff --git a/app/src/main/res/xml/provider_paths.xml b/app/src/main/res/xml/provider_paths.xml
new file mode 100644
index 00000000..74a5cde1
--- /dev/null
+++ b/app/src/main/res/xml/provider_paths.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file