Play files from explorer (currently only if the matching song is in the MediaStore)

This commit is contained in:
Karim Abou Zeid 2015-07-10 23:32:29 +02:00
commit d8c7af3e09
2 changed files with 15 additions and 2 deletions

View file

@ -8,6 +8,7 @@ import android.content.Intent;
import android.content.ServiceConnection; import android.content.ServiceConnection;
import android.media.audiofx.AudioEffect; import android.media.audiofx.AudioEffect;
import android.os.IBinder; import android.os.IBinder;
import android.provider.MediaStore;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.widget.Toast; import android.widget.Toast;
@ -305,6 +306,17 @@ public class MusicPlayerRemote {
} }
public static void playFile(String path) { public static void playFile(String path) {
//TODO if (musicService != null) {
ArrayList<Song> songs = SongLoader.getSongs(SongLoader.makeSongCursor(
musicService,
MediaStore.Audio.AudioColumns.DATA + "=?",
new String[]{path}
));
if (!songs.isEmpty()) {
openQueue(songs, 0, true);
} else {
//TODO the file is not listed in the media store
}
}
} }
} }

View file

@ -59,6 +59,7 @@ import com.kabouzeid.gramophone.util.ViewUtil;
import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.File;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
@ -450,7 +451,7 @@ public class MainActivity extends AbsFabActivity
MusicPlayerRemote.openQueue(SearchQueryHelper.getSongs(this, intent.getExtras()), 0, true); MusicPlayerRemote.openQueue(SearchQueryHelper.getSongs(this, intent.getExtras()), 0, true);
} }
if (uri != null && uri.toString().length() > 0) { if (uri != null && uri.toString().length() > 0) {
MusicPlayerRemote.playFile(uri.toString()); MusicPlayerRemote.playFile(new File(uri.getPath()).getAbsolutePath());
handled = true; handled = true;
} else if (MediaStore.Audio.Playlists.CONTENT_TYPE.equals(mimeType)) { } else if (MediaStore.Audio.Playlists.CONTENT_TYPE.equals(mimeType)) {
final int id = (int) parseIdFromIntent(intent, "playlistId", "playlist"); final int id = (int) parseIdFromIntent(intent, "playlistId", "playlist");