fix external storage access with a legacy flag

This commit is contained in:
dkanada 2021-05-04 20:22:09 +09:00
commit d629311768
4 changed files with 5 additions and 9 deletions

View file

@ -18,6 +18,7 @@
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.Phonograph.Light" android:theme="@style/Theme.Phonograph.Light"
tools:ignore="UnusedAttribute"> tools:ignore="UnusedAttribute">
@ -33,7 +34,6 @@
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.MUSIC_PLAYER" /> <action android:name="android.intent.action.MUSIC_PLAYER" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.APP_MUSIC" /> <category android:name="android.intent.category.APP_MUSIC" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />

View file

@ -96,7 +96,7 @@ public class LocalPlayer implements Playback {
@Override @Override
public void setDataSource(Song song) { public void setDataSource(Song song) {
String uri = MusicUtil.getSongFileUri(song); String uri = MusicUtil.getTranscodeUri(song);
MediaItem mediaItem = exoPlayer.getCurrentMediaItem(); MediaItem mediaItem = exoPlayer.getCurrentMediaItem();
if (mediaItem != null && mediaItem.playbackProperties.uri.toString().equals(uri)) { if (mediaItem != null && mediaItem.playbackProperties.uri.toString().equals(uri)) {
@ -104,7 +104,7 @@ public class LocalPlayer implements Playback {
} }
exoPlayer.clearMediaItems(); exoPlayer.clearMediaItems();
appendDataSource(MusicUtil.getSongFileUri(song)); appendDataSource(MusicUtil.getTranscodeUri(song));
exoPlayer.seekTo(0, 0); exoPlayer.seekTo(0, 0);
} }
@ -114,7 +114,7 @@ public class LocalPlayer implements Playback {
exoPlayer.removeMediaItem(1); exoPlayer.removeMediaItem(1);
} }
appendDataSource(MusicUtil.getSongFileUri(song)); appendDataSource(MusicUtil.getTranscodeUri(song));
} }
private void appendDataSource(String path) { private void appendDataSource(String path) {

View file

@ -25,7 +25,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
public class MusicUtil { public class MusicUtil {
public static String getSongFileUri(Song song) { public static String getTranscodeUri(Song song) {
PreferenceUtil preferenceUtil = PreferenceUtil.getInstance(App.getInstance()); PreferenceUtil preferenceUtil = PreferenceUtil.getInstance(App.getInstance());
StringBuilder builder = new StringBuilder(256); StringBuilder builder = new StringBuilder(256);

View file

@ -66,28 +66,24 @@ public class NavigationUtil {
public static void startArtist(@NonNull final Activity activity, final Artist artist, @Nullable Pair... sharedElements) { public static void startArtist(@NonNull final Activity activity, final Artist artist, @Nullable Pair... sharedElements) {
final Intent intent = new Intent(activity, ArtistDetailActivity.class); final Intent intent = new Intent(activity, ArtistDetailActivity.class);
intent.putExtra(ArtistDetailActivity.EXTRA_ARTIST, artist); intent.putExtra(ArtistDetailActivity.EXTRA_ARTIST, artist);
startActivitySharedElements(activity, intent, sharedElements); startActivitySharedElements(activity, intent, sharedElements);
} }
public static void startAlbum(@NonNull final Activity activity, final Album album, @Nullable Pair... sharedElements) { public static void startAlbum(@NonNull final Activity activity, final Album album, @Nullable Pair... sharedElements) {
final Intent intent = new Intent(activity, AlbumDetailActivity.class); final Intent intent = new Intent(activity, AlbumDetailActivity.class);
intent.putExtra(AlbumDetailActivity.EXTRA_ALBUM, album); intent.putExtra(AlbumDetailActivity.EXTRA_ALBUM, album);
startActivitySharedElements(activity, intent, sharedElements); startActivitySharedElements(activity, intent, sharedElements);
} }
public static void startGenre(@NonNull final Activity activity, final Genre genre, @Nullable Pair... sharedElements) { public static void startGenre(@NonNull final Activity activity, final Genre genre, @Nullable Pair... sharedElements) {
final Intent intent = new Intent(activity, GenreDetailActivity.class); final Intent intent = new Intent(activity, GenreDetailActivity.class);
intent.putExtra(GenreDetailActivity.EXTRA_GENRE, genre); intent.putExtra(GenreDetailActivity.EXTRA_GENRE, genre);
startActivitySharedElements(activity, intent, sharedElements); startActivitySharedElements(activity, intent, sharedElements);
} }
public static void startPlaylist(@NonNull final Activity activity, final Playlist playlist, @Nullable Pair... sharedElements) { public static void startPlaylist(@NonNull final Activity activity, final Playlist playlist, @Nullable Pair... sharedElements) {
final Intent intent = new Intent(activity, PlaylistDetailActivity.class); final Intent intent = new Intent(activity, PlaylistDetailActivity.class);
intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist); intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist);
startActivitySharedElements(activity, intent, sharedElements); startActivitySharedElements(activity, intent, sharedElements);
} }