diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerBottomSheetFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerBottomSheetFragment.java index f9796413..761c6f3c 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerBottomSheetFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerBottomSheetFragment.java @@ -157,6 +157,7 @@ public class PlayerBottomSheetFragment extends Fragment { if (mediaMetadata.extras != null) { playerBottomSheetViewModel.setLiveMedia(getViewLifecycleOwner(), mediaMetadata.extras.getString("type"), mediaMetadata.extras.getString("id")); playerBottomSheetViewModel.setLiveArtist(getViewLifecycleOwner(), mediaMetadata.extras.getString("type"), mediaMetadata.extras.getString("artistId")); + playerBottomSheetViewModel.setLiveDescription(mediaMetadata.extras.getString("description", null)); bind.playerHeaderLayout.playerHeaderMediaTitleLabel.setText(MusicUtil.getReadableString(mediaMetadata.extras.getString("title"))); bind.playerHeaderLayout.playerHeaderMediaArtistLabel.setText(MusicUtil.getReadableString(mediaMetadata.extras.getString("artist"))); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerLyricsFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerLyricsFragment.java index dfd1bcc8..a492014e 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerLyricsFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerLyricsFragment.java @@ -44,18 +44,25 @@ public class PlayerLyricsFragment extends Fragment { private void initLyrics() { playerBottomSheetViewModel.getLiveLyrics().observe(getViewLifecycleOwner(), lyrics -> { - if (bind != null) { - if (lyrics == null || lyrics.trim().equals("")) { - bind.nowPlayingSongLyricsTextView.setVisibility(View.GONE); - bind.emptyDescriptionImageView.setVisibility(View.VISIBLE); - bind.titleEmptyDescriptionLabel.setVisibility(View.VISIBLE); - } else { - bind.nowPlayingSongLyricsTextView.setText(MusicUtil.getReadableLyrics(lyrics)); - bind.nowPlayingSongLyricsTextView.setVisibility(View.VISIBLE); - bind.emptyDescriptionImageView.setVisibility(View.GONE); - bind.titleEmptyDescriptionLabel.setVisibility(View.GONE); + playerBottomSheetViewModel.getLiveDescription().observe(getViewLifecycleOwner(), description -> { + if (bind != null) { + if (lyrics != null && !lyrics.trim().equals("")) { + bind.nowPlayingSongLyricsTextView.setText(MusicUtil.getReadableLyrics(lyrics)); + bind.nowPlayingSongLyricsTextView.setVisibility(View.VISIBLE); + bind.emptyDescriptionImageView.setVisibility(View.GONE); + bind.titleEmptyDescriptionLabel.setVisibility(View.GONE); + } else if (description != null && !description.trim().equals("")) { + bind.nowPlayingSongLyricsTextView.setText(MusicUtil.getReadableLyrics(description)); + bind.nowPlayingSongLyricsTextView.setVisibility(View.VISIBLE); + bind.emptyDescriptionImageView.setVisibility(View.GONE); + bind.titleEmptyDescriptionLabel.setVisibility(View.GONE); + } else { + bind.nowPlayingSongLyricsTextView.setVisibility(View.GONE); + bind.emptyDescriptionImageView.setVisibility(View.VISIBLE); + bind.titleEmptyDescriptionLabel.setVisibility(View.VISIBLE); + } } - } + }); }); } } \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java b/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java index a0997499..f94b84a9 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java @@ -179,6 +179,7 @@ public class MappingUtil { bundle.putBoolean("isVideo", podcastEpisode.isVideo()); bundle.putLong("created", podcastEpisode.getCreated() != null ? podcastEpisode.getCreated().getTime() : 0); bundle.putString("artistId", podcastEpisode.getArtistId()); + bundle.putString("description", podcastEpisode.getDescription()); bundle.putString("type", Constants.MEDIA_TYPE_PODCAST); bundle.putString("uri", uri.toString()); diff --git a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlayerBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlayerBottomSheetViewModel.java index b15400af..f91c4995 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlayerBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlayerBottomSheetViewModel.java @@ -42,6 +42,7 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel { private final FavoriteRepository favoriteRepository; private final MutableLiveData lyricsLiveData = new MutableLiveData<>(null); + private final MutableLiveData descriptionLiveData = new MutableLiveData<>(null); private final MutableLiveData liveMedia = new MutableLiveData<>(null); private final MutableLiveData liveArtist = new MutableLiveData<>(null); @@ -137,6 +138,7 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel { switch (mediaType) { case Constants.MEDIA_TYPE_MUSIC: songRepository.getSong(mediaId).observe(owner, liveMedia::postValue); + descriptionLiveData.postValue(null); break; case Constants.MEDIA_TYPE_PODCAST: liveMedia.postValue(null); @@ -162,6 +164,14 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel { } } + public void setLiveDescription(String description) { + descriptionLiveData.postValue(description); + } + + public LiveData getLiveDescription() { + return descriptionLiveData; + } + public LiveData> getMediaInstantMix(LifecycleOwner owner, Child media) { instantMix.setValue(Collections.emptyList());