mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-10-29 11:49:33 +00:00
Android Auto: Grid view for subscriptions (#7889)
This commit is contained in:
parent
85313e28b6
commit
b9014b64e0
@ -52,6 +52,7 @@ import androidx.core.content.ContextCompat;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.media.MediaBrowserServiceCompat;
|
||||
import androidx.media.utils.MediaConstants;
|
||||
|
||||
import de.danoeh.antennapod.event.PlayerStatusEvent;
|
||||
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueue;
|
||||
@ -371,7 +372,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||
}
|
||||
|
||||
private MediaBrowserCompat.MediaItem createBrowsableMediaItem(
|
||||
@StringRes int title, @DrawableRes int icon, int numEpisodes) {
|
||||
@StringRes int title, @DrawableRes int icon, int numEpisodes, boolean grid) {
|
||||
Uri uri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
|
||||
.authority(getResources().getResourcePackageName(icon))
|
||||
@ -379,11 +380,21 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||
.appendPath(getResources().getResourceEntryName(icon))
|
||||
.build();
|
||||
|
||||
Bundle extras = new Bundle();
|
||||
if (grid) {
|
||||
extras.putInt(
|
||||
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE,
|
||||
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM);
|
||||
extras.putInt(
|
||||
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE,
|
||||
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM);
|
||||
}
|
||||
MediaDescriptionCompat description = new MediaDescriptionCompat.Builder()
|
||||
.setIconUri(uri)
|
||||
.setMediaId(getResources().getString(title))
|
||||
.setTitle(getResources().getString(title))
|
||||
.setSubtitle(getResources().getQuantityString(R.plurals.num_episodes, numEpisodes, numEpisodes))
|
||||
.setExtras(extras)
|
||||
.build();
|
||||
return new MediaBrowserCompat.MediaItem(description, MediaBrowserCompat.MediaItem.FLAG_BROWSABLE);
|
||||
}
|
||||
@ -430,14 +441,20 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||
if (parentId.equals(getResources().getString(R.string.app_name))) {
|
||||
FeedMedia playable = DBReader.getFeedMedia(PlaybackPreferences.getCurrentlyPlayingFeedMediaId());
|
||||
if (playable != null) {
|
||||
mediaItems.add(createBrowsableMediaItem(R.string.current_playing_episode, R.drawable.ic_play_48dp_black, 1));
|
||||
mediaItems.add(createBrowsableMediaItem(R.string.current_playing_episode, R.drawable.ic_play_48dp_black, 1, false));
|
||||
}
|
||||
mediaItems.add(createBrowsableMediaItem(R.string.queue_label, R.drawable.ic_playlist_play_black,
|
||||
DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.QUEUED))));
|
||||
DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.QUEUED)), false));
|
||||
mediaItems.add(createBrowsableMediaItem(R.string.downloads_label, R.drawable.ic_download_black,
|
||||
DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.DOWNLOADED))));
|
||||
DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.DOWNLOADED)), false));
|
||||
mediaItems.add(createBrowsableMediaItem(R.string.episodes_label, R.drawable.ic_feed_black,
|
||||
DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.UNPLAYED))));
|
||||
DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.UNPLAYED)), false));
|
||||
mediaItems.add(createBrowsableMediaItem(R.string.subscriptions_label, R.drawable.ic_subscriptions_black,
|
||||
DBReader.getFeedList().size(), true));
|
||||
return mediaItems;
|
||||
}
|
||||
|
||||
if (parentId.equals(getResources().getString(R.string.subscriptions_label))) {
|
||||
List<Feed> feeds = DBReader.getFeedList();
|
||||
for (Feed feed : feeds) {
|
||||
if (feed.getState() == Feed.STATE_SUBSCRIBED) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user