v2.0.00
This commit is contained in:
parent
a8dfe106bb
commit
3d7ba2afc6
193 changed files with 3667 additions and 2662 deletions
|
@ -23,15 +23,23 @@ import android.net.Uri;
|
|||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.service.media.MediaBrowserService;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
|
||||
import code.name.monkey.retromusic.loaders.AlbumLoader;
|
||||
import code.name.monkey.retromusic.loaders.ArtistLoader;
|
||||
import code.name.monkey.retromusic.loaders.PlaylistLoader;
|
||||
import code.name.monkey.retromusic.loaders.PlaylistSongsLoader;
|
||||
import code.name.monkey.retromusic.loaders.SongLoader;
|
||||
import code.name.monkey.retromusic.model.Album;
|
||||
import code.name.monkey.retromusic.model.Artist;
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.util.RetroUtil;
|
||||
|
||||
|
@ -52,7 +60,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
public static final int TYPE_PLAYLIST_ALL_SONGS = 7;
|
||||
|
||||
public static WearBrowserService sInstance;
|
||||
MediaSession mSession;
|
||||
private MediaSession mSession;
|
||||
private Context mContext;
|
||||
private boolean mServiceStarted;
|
||||
|
||||
|
@ -69,7 +77,6 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
setSessionToken(mSession.getSessionToken());
|
||||
mSession.setCallback(new MediaSessionCallback());
|
||||
mSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS | MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -117,8 +124,12 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
}
|
||||
}
|
||||
|
||||
private void fillMediaItems(List<MediaBrowser.MediaItem> mediaItems, String mediaId,
|
||||
String title, Uri icon, String subTitle, int playableOrBrowsable) {
|
||||
private void fillMediaItems(List<MediaBrowser.MediaItem> mediaItems,
|
||||
String mediaId,
|
||||
String title,
|
||||
String subTitle,
|
||||
Uri icon,
|
||||
int playableOrBrowsable) {
|
||||
mediaItems.add(new MediaBrowser.MediaItem(
|
||||
new MediaDescription.Builder()
|
||||
.setMediaId(mediaId)
|
||||
|
@ -134,8 +145,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
new MediaDescription.Builder()
|
||||
.setMediaId(Integer.toString(TYPE_ARTIST))
|
||||
.setTitle(getString(R.string.artists))
|
||||
.setIconUri(Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"))
|
||||
.setIconBitmap(RetroUtil.createBitmap(ContextCompat.getDrawable(getApplicationContext(), R.drawable.default_artist_art), 1f))
|
||||
.setSubtitle(getString(R.string.artists))
|
||||
.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
|
||||
));
|
||||
|
@ -144,8 +154,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
new MediaDescription.Builder()
|
||||
.setMediaId(Integer.toString(TYPE_ALBUM))
|
||||
.setTitle(getString(R.string.albums))
|
||||
.setIconUri(Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"))
|
||||
.setIconBitmap(RetroUtil.createBitmap(ContextCompat.getDrawable(getApplicationContext(), R.drawable.default_album_art), 1f))
|
||||
.setSubtitle(getString(R.string.albums))
|
||||
.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
|
||||
));
|
||||
|
@ -154,8 +163,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
new MediaDescription.Builder()
|
||||
.setMediaId(Integer.toString(TYPE_SONG))
|
||||
.setTitle(getString(R.string.songs))
|
||||
.setIconUri(Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"))
|
||||
.setIconBitmap(RetroUtil.createBitmap(ContextCompat.getDrawable(getApplicationContext(), R.drawable.default_album_art), 1f))
|
||||
.setSubtitle(getString(R.string.songs))
|
||||
.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
|
||||
));
|
||||
|
@ -165,8 +173,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
new MediaDescription.Builder()
|
||||
.setMediaId(Integer.toString(TYPE_PLAYLIST))
|
||||
.setTitle(getString(R.string.playlists))
|
||||
.setIconUri(Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"))
|
||||
.setIconUri(Uri.parse("android.resource://code.name.monkey.retromusic/drawable/ic_queue_music_white_24dp"))
|
||||
.setSubtitle(getString(R.string.playlists))
|
||||
.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
|
||||
));
|
||||
|
@ -177,6 +184,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
|
||||
final List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>();
|
||||
|
||||
|
||||
new AsyncTask<Void, Void, Void>() {
|
||||
@Override
|
||||
protected Void doInBackground(final Void... unused) {
|
||||
|
@ -185,64 +193,108 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
addMediaRoots(mediaItems);
|
||||
} else {
|
||||
switch (Integer.parseInt(Character.toString(parentId.charAt(0)))) {
|
||||
/*case TYPE_ARTIST:
|
||||
List<Artist> artistList = ArtistLoader.getAllArtists(mContext);
|
||||
case TYPE_ARTIST:
|
||||
List<Artist> artistList = ArtistLoader.getAllArtists(mContext).blockingFirst();
|
||||
for (Artist artist : artistList) {
|
||||
String albumNmber = TimberUtils.makeLabel(mContext, R.plurals.Nalbums, artist.albumCount);
|
||||
String songCount = TimberUtils.makeLabel(mContext, R.plurals.Nsongs, artist.songCount);
|
||||
fillMediaItems(mediaItems, Integer.toString(TYPE_ARTIST_SONG_ALBUMS) + Long.toString(artist.id), artist.name, Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"), TimberUtils.makeCombinedString(mContext, albumNmber, songCount), MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
String albumNmber = String.format("%d %s", artist.albums.size(), artist.albums.size() > 1 ? "Albums" : "Album");
|
||||
String songCount = String.format("%d %s", artist.getSongs().size(), artist.getSongs().size() > 1 ? "Songs" : "Song");
|
||||
fillMediaItems(mediaItems,
|
||||
Integer.toString(TYPE_ARTIST_SONG_ALBUMS) + Long.toString(artist.getId()),
|
||||
artist.getName(),
|
||||
albumNmber + " • " + songCount,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_artist_art"),
|
||||
MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
}
|
||||
break;
|
||||
|
||||
case TYPE_ARTIST_SONG_ALBUMS:
|
||||
fillMediaItems(mediaItems,
|
||||
Integer.toString(TYPE_ARTIST_ALL_SONGS) + Long.parseLong(parentId.substring(1)),
|
||||
"All songs",
|
||||
"All songs by artist",
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_artist_art"),
|
||||
MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
|
||||
List<Album> artistAlbums = ArtistLoader.getArtist(mContext, Integer.parseInt(parentId.substring(1))).blockingFirst().albums; //ArtistAlbumLoader.getAlbumsForArtist(mContext, Long.parseLong(parentId.substring(1)));
|
||||
for (Album album : artistAlbums) {
|
||||
String songCount = String.format("%d %s", album.songs.size(), album.songs.size() > 1 ? "Songs" : "Song");
|
||||
fillMediaItems(mediaItems,
|
||||
Integer.toString(TYPE_ALBUM_SONGS) + Long.toString(album.getId()),
|
||||
album.getTitle(),
|
||||
songCount,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_artist_art"),
|
||||
MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
}
|
||||
break;
|
||||
case TYPE_ALBUM:
|
||||
List<Album> albumList = AlbumLoader.getAllAlbums(mContext);
|
||||
List<Album> albumList = AlbumLoader.getAllAlbums(mContext).blockingFirst();
|
||||
for (Album album : albumList) {
|
||||
fillMediaItems(mediaItems, Integer.toString(TYPE_ALBUM_SONGS) + Long.toString(album.id), album.title, TimberUtils.getAlbumArtUri(album.id), album.artistName, MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
fillMediaItems(mediaItems,
|
||||
Integer.toString(TYPE_ALBUM_SONGS) + Long.toString(album.getId()),
|
||||
album.getTitle(),
|
||||
album.getArtistName(),
|
||||
RetroUtil.getAlbumArtUri(album.getId()),
|
||||
MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
}
|
||||
break;*/
|
||||
break;
|
||||
case TYPE_SONG:
|
||||
List<Song> songList = SongLoader.getAllSongs(mContext).blockingFirst();
|
||||
for (Song song : songList) {
|
||||
fillMediaItems(mediaItems, String.valueOf(song.id), song.title, RetroUtil.getAlbumArtUri(song.albumId), song.artistName, MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
fillMediaItems(mediaItems,
|
||||
String.valueOf(song.id),
|
||||
song.title,
|
||||
song.artistName,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_album_art"),
|
||||
MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
}
|
||||
break;
|
||||
/* case TYPE_ALBUM_SONGS:
|
||||
List<Song> albumSongList = AlbumSongLoader.getSongsForAlbum(mContext, Long.parseLong(parentId.substring(1)));
|
||||
for (Song song : albumSongList) {
|
||||
fillMediaItems(mediaItems, String.valueOf(song.id), song.title, TimberUtils.getAlbumArtUri(song.albumId), song.artistName, MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
}
|
||||
break;
|
||||
case TYPE_ARTIST_SONG_ALBUMS:
|
||||
fillMediaItems(mediaItems, Integer.toString(TYPE_ARTIST_ALL_SONGS) + Long.parseLong(parentId.substring(1)), "All songs", Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"), "All songs by artist", MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
List<Album> artistAlbums = ArtistAlbumLoader.getAlbumsForArtist(mContext, Long.parseLong(parentId.substring(1)));
|
||||
for (Album album : artistAlbums) {
|
||||
String songCount = TimberUtils.makeLabel(mContext, R.plurals.Nsongs, album.songCount);
|
||||
fillMediaItems(mediaItems, Integer.toString(TYPE_ALBUM_SONGS) + Long.toString(album.id), album.title, TimberUtils.getAlbumArtUri(album.id), songCount, MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
|
||||
case TYPE_ALBUM_SONGS:
|
||||
List<Song> albumSongList = AlbumLoader.getAlbum(mContext, Integer.parseInt(parentId.substring(1))).blockingFirst().songs;
|
||||
for (Song song : albumSongList) {
|
||||
fillMediaItems(mediaItems,
|
||||
String.valueOf(song.id),
|
||||
song.title,
|
||||
song.artistName,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_album_art"),
|
||||
MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
}
|
||||
break;
|
||||
case TYPE_ARTIST_ALL_SONGS:
|
||||
List<Song> artistSongs = ArtistSongLoader.getSongsForArtist(mContext, Long.parseLong(parentId.substring(1)));
|
||||
List<Song> artistSongs = ArtistLoader.getArtist(mContext, Integer.parseInt(parentId.substring(1))).blockingFirst().getSongs();
|
||||
for (Song song : artistSongs) {
|
||||
fillMediaItems(mediaItems, String.valueOf(song.id), song.title, TimberUtils.getAlbumArtUri(song.albumId), song.albumName, MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
fillMediaItems(mediaItems,
|
||||
String.valueOf(song.id),
|
||||
song.title,
|
||||
song.albumName,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_album_art"),
|
||||
MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
}
|
||||
break;
|
||||
case TYPE_PLAYLIST:
|
||||
List<Playlist> playlistList = PlaylistLoader.getPlaylists(mContext, false);
|
||||
List<Playlist> playlistList = PlaylistLoader.getAllPlaylists(mContext).blockingFirst();
|
||||
for (Playlist playlist : playlistList) {
|
||||
String songCount = TimberUtils.makeLabel(mContext, R.plurals.Nsongs, playlist.songCount);
|
||||
fillMediaItems(mediaItems, Integer.toString(TYPE_PLAYLIST_ALL_SONGS) + Long.toString(playlist.id), playlist.name,
|
||||
Uri.parse("android.resource://" +
|
||||
"naman14.timber/drawable/ic_empty_music2"), songCount, MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
int size = PlaylistSongsLoader.getPlaylistSongList(mContext, playlist).blockingFirst().size();
|
||||
String songCount = String.format("%d %s", size, size > 1 ? "Songs" : "Song");
|
||||
fillMediaItems(mediaItems,
|
||||
Integer.toString(TYPE_PLAYLIST_ALL_SONGS) + Long.toString(playlist.id),
|
||||
playlist.name,
|
||||
songCount,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/ic_queue_music_white_24dp"),
|
||||
MediaBrowser.MediaItem.FLAG_BROWSABLE);
|
||||
}
|
||||
break;
|
||||
case TYPE_PLAYLIST_ALL_SONGS:
|
||||
List<Song> playlistSongs = PlaylistSongLoader.getSongsInPlaylist(mContext, Long.parseLong(parentId.substring(1)));
|
||||
List<Song> playlistSongs = PlaylistSongsLoader.getPlaylistSongList(mContext, Integer.parseInt(parentId.substring(1))).blockingFirst();
|
||||
for (Song song : playlistSongs) {
|
||||
fillMediaItems(mediaItems, String.valueOf(song.id), song.title, TimberUtils.getAlbumArtUri(song.albumId), song.albumName, MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
fillMediaItems(mediaItems,
|
||||
String.valueOf(song.id),
|
||||
song.title,
|
||||
song.albumName,
|
||||
Uri.parse("android.resource://code.name.monkey.retromusic/drawable/default_album_art"),
|
||||
MediaBrowser.MediaItem.FLAG_PLAYABLE);
|
||||
}
|
||||
break;*/
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -309,7 +361,7 @@ public class WearBrowserService extends MediaBrowserService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onCustomAction(String action, Bundle extras) {
|
||||
public void onCustomAction(@NonNull String action, Bundle extras) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue