diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/AlbumAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/AlbumAdapter.java index ae68c446..00109b05 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/AlbumAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/AlbumAdapter.java @@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.model.Album; +import com.cappielloantonio.play.util.MusicUtil; import java.util.ArrayList; import java.util.List; @@ -43,8 +44,8 @@ public class AlbumAdapter extends RecyclerView.Adapter public void onBindViewHolder(ViewHolder holder, int position) { Album album = albums.get(position); - holder.textAlbumName.setText(Html.fromHtml(album.getTitle(), Html.FROM_HTML_MODE_COMPACT)); - holder.textArtistName.setText(Html.fromHtml(album.getArtistName(), Html.FROM_HTML_MODE_COMPACT)); + holder.textAlbumName.setText(MusicUtil.getReadableInfo(album.getTitle())); + holder.textArtistName.setText(MusicUtil.getReadableInfo(album.getArtistName())); CustomGlideRequest.Builder .from(context, album.getPrimary(), album.getBlurHash(), CustomGlideRequest.ALBUM_PIC) diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/AlbumArtistPageOrSimilarAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/AlbumArtistPageOrSimilarAdapter.java index 23b46996..fefca45a 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/AlbumArtistPageOrSimilarAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/AlbumArtistPageOrSimilarAdapter.java @@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.model.Album; +import com.cappielloantonio.play.util.MusicUtil; import java.util.ArrayList; import java.util.List; @@ -42,8 +43,8 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter public void onBindViewHolder(ViewHolder holder, int position) { Genre genre = genres.get(position); - holder.textGenre.setText(Html.fromHtml(genre.getName(), Html.FROM_HTML_MODE_COMPACT)); + holder.textGenre.setText(MusicUtil.getReadableInfo(genre.getName())); } @Override diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/GenreCatalogueAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/GenreCatalogueAdapter.java index 3c79b75c..b0b893aa 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/GenreCatalogueAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/GenreCatalogueAdapter.java @@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; import com.cappielloantonio.play.model.Genre; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.MusicUtil; import java.util.ArrayList; import java.util.List; @@ -76,7 +77,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter(); } + @NonNull @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.item_player_now_playing_song, parent, false); @@ -63,7 +65,7 @@ public class PlayerNowPlayingSongAdapter extends RecyclerView.Adapter activity.navController.navigateUp()); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java index b39cdc02..2a008792 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java @@ -18,6 +18,7 @@ import com.cappielloantonio.play.databinding.FragmentFilterBinding; import com.cappielloantonio.play.model.Genre; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.FilterViewModel; import com.google.android.material.chip.Chip; @@ -96,7 +97,7 @@ public class FilterFragment extends Fragment { bind.filterContainer.setVisibility(View.VISIBLE); for (Genre genre : genres) { Chip chip = (Chip) requireActivity().getLayoutInflater().inflate(R.layout.chip_search_filter_genre, null, false); - chip.setText(Html.fromHtml(genre.getName(), Html.FROM_HTML_MODE_COMPACT)); + chip.setText(MusicUtil.getReadableInfo(genre.getName())); chip.setChecked(filterViewModel.getFilters().contains(genre.getId())); chip.setOnCheckedChangeListener((buttonView, isChecked) -> { if (isChecked) diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java index 9fff6127..ad24c050 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerBottomSheetFragment.java @@ -119,7 +119,6 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE public void onPageScrollStateChanged(int state) { super.onPageScrollStateChanged(state); pageState = state; - } @Override @@ -258,11 +257,11 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE } private void setSongInfo(Song song) { - bind.playerBodyLayout.playerSongTitleLabel.setText(Html.fromHtml(song.getTitle(), Html.FROM_HTML_MODE_COMPACT)); - bind.playerBodyLayout.playerArtistNameLabel.setText(Html.fromHtml(song.getArtistName(), Html.FROM_HTML_MODE_COMPACT)); + bind.playerBodyLayout.playerSongTitleLabel.setText(MusicUtil.getReadableInfo(song.getTitle())); + bind.playerBodyLayout.playerArtistNameLabel.setText(MusicUtil.getReadableInfo(song.getArtistName())); - bind.playerHeaderLayout.playerHeaderSongTitleLabel.setText(Html.fromHtml(song.getTitle(), Html.FROM_HTML_MODE_COMPACT)); - bind.playerHeaderLayout.playerHeaderSongArtistLabel.setText(Html.fromHtml(song.getArtistName(), Html.FROM_HTML_MODE_COMPACT)); + bind.playerHeaderLayout.playerHeaderSongTitleLabel.setText(MusicUtil.getReadableInfo(song.getTitle())); + bind.playerHeaderLayout.playerHeaderSongArtistLabel.setText(MusicUtil.getReadableInfo(song.getArtistName())); CustomGlideRequest.Builder .from(requireContext(), song.getPrimary(), song.getBlurHash(), CustomGlideRequest.SONG_PIC) diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java index ddd45c94..76a5fb68 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java @@ -18,6 +18,7 @@ import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.QueueRepository; import com.cappielloantonio.play.service.MusicPlayerRemote; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.SongListPageViewModel; import java.util.Collections; @@ -71,11 +72,11 @@ public class SongListPageFragment extends Fragment { } else if (getArguments().getString(Song.BY_GENRE) != null) { songListPageViewModel.title = Song.BY_GENRE; songListPageViewModel.genre = getArguments().getParcelable("genre_object"); - bind.pageTitleLabel.setText(Html.fromHtml(songListPageViewModel.genre.getName(), Html.FROM_HTML_MODE_COMPACT) + ": all tracks"); + bind.pageTitleLabel.setText(MusicUtil.getReadableInfo(songListPageViewModel.genre.getName()) + ": all tracks"); } else if (getArguments().getString(Song.BY_ARTIST) != null) { songListPageViewModel.title = Song.BY_ARTIST; songListPageViewModel.artist = getArguments().getParcelable("artist_object"); - bind.pageTitleLabel.setText(Html.fromHtml(songListPageViewModel.artist.getName(), Html.FROM_HTML_MODE_COMPACT) + "'s top tracks"); + bind.pageTitleLabel.setText(MusicUtil.getReadableInfo(songListPageViewModel.artist.getName()) + "'s top tracks"); } else if (getArguments().getString(Song.BY_GENRES) != null) { songListPageViewModel.title = Song.BY_GENRES; songListPageViewModel.filters = getArguments().getStringArrayList("filters_list"); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java index d3fdcb6a..d7f6593b 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java @@ -26,6 +26,7 @@ import com.cappielloantonio.play.repository.QueueRepository; import com.cappielloantonio.play.service.MusicPlayerRemote; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.util.DownloadUtil; +import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.AlbumBottomSheetViewModel; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -78,11 +79,11 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements .into(coverAlbum); titleAlbum = view.findViewById(R.id.album_title_text_view); - titleAlbum.setText(Html.fromHtml(albumBottomSheetViewModel.getAlbum().getTitle(), Html.FROM_HTML_MODE_COMPACT)); + titleAlbum.setText(MusicUtil.getReadableInfo(albumBottomSheetViewModel.getAlbum().getTitle())); titleAlbum.setSelected(true); artistAlbum = view.findViewById(R.id.album_artist_text_view); - artistAlbum.setText(Html.fromHtml(albumBottomSheetViewModel.getAlbum().getArtistName(), Html.FROM_HTML_MODE_COMPACT)); + artistAlbum.setText(MusicUtil.getReadableInfo(albumBottomSheetViewModel.getAlbum().getArtistName())); favoriteToggle = view.findViewById(R.id.button_favorite); favoriteToggle.setChecked(albumBottomSheetViewModel.getAlbum().isFavorite()); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java index 72515bfe..1b2822d0 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java @@ -24,6 +24,7 @@ import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.QueueRepository; import com.cappielloantonio.play.service.MusicPlayerRemote; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.ArtistBottomSheetViewModel; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -70,7 +71,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement .into(coverArtist); nameArtist = view.findViewById(R.id.song_title_text_view); - nameArtist.setText(Html.fromHtml(artistBottomSheetViewModel.getArtist().getName(), Html.FROM_HTML_MODE_COMPACT)); + nameArtist.setText(MusicUtil.getReadableInfo(artistBottomSheetViewModel.getArtist().getName())); nameArtist.setSelected(true); favoriteToggle = view.findViewById(R.id.button_favorite); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java index 15a7fcf3..e98fe03a 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java @@ -25,6 +25,7 @@ import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.service.MusicPlayerRemote; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.util.DownloadUtil; +import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.viewmodel.SongBottomSheetViewModel; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -74,12 +75,12 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements .into(coverSong); titleSong = view.findViewById(R.id.song_title_text_view); - titleSong.setText(Html.fromHtml(songBottomSheetViewModel.getSong().getTitle(), Html.FROM_HTML_MODE_COMPACT)); + titleSong.setText(MusicUtil.getReadableInfo(songBottomSheetViewModel.getSong().getTitle())); titleSong.setSelected(true); artistSong = view.findViewById(R.id.song_artist_text_view); - artistSong.setText(Html.fromHtml(songBottomSheetViewModel.getSong().getArtistName(), Html.FROM_HTML_MODE_COMPACT)); + artistSong.setText(MusicUtil.getReadableInfo(songBottomSheetViewModel.getSong().getArtistName())); favoriteToggle = view.findViewById(R.id.button_favorite); favoriteToggle.setChecked(songBottomSheetViewModel.getSong().isFavorite()); diff --git a/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java b/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java index fb384f13..162933a8 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java @@ -1,5 +1,7 @@ package com.cappielloantonio.play.util; +import android.text.Html; + import com.cappielloantonio.play.App; import com.cappielloantonio.play.R; import com.cappielloantonio.play.glide.CustomGlideRequest; @@ -47,6 +49,14 @@ public class MusicUtil { } } + public static String getReadableInfo(String info) { + if (info != null) { + return Html.fromHtml(info, Html.FROM_HTML_MODE_COMPACT).toString(); + } + + return ""; + } + public static int getDefaultPicPerCategory(String category) { if (category.equals(CustomGlideRequest.SONG_PIC)) { return R.drawable.default_album_art;