Fix html suggestions visualization

This commit is contained in:
CappielloAntonio 2021-08-07 15:09:20 +02:00
parent de4e25a86b
commit 61b3e413c9
27 changed files with 65 additions and 48 deletions

View file

@ -44,8 +44,8 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
holder.textAlbumName.setText(MusicUtil.getReadableInfo(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableInfo(album.getArtistName()));
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtistName()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC)

View file

@ -43,8 +43,8 @@ public class AlbumArtistPageOrSimilarAdapter extends RecyclerView.Adapter<AlbumA
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
holder.textAlbumName.setText(MusicUtil.getReadableInfo(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableInfo(album.getArtistName()));
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtistName()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC)

View file

@ -81,8 +81,8 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
holder.textAlbumName.setText(MusicUtil.getReadableInfo(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableInfo(album.getArtistName()));
holder.textAlbumName.setText(MusicUtil.getReadableString(album.getTitle()));
holder.textArtistName.setText(MusicUtil.getReadableString(album.getArtistName()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC)

View file

@ -50,8 +50,8 @@ public class AlbumHorizontalAdapter extends RecyclerView.Adapter<AlbumHorizontal
public void onBindViewHolder(ViewHolder holder, int position) {
Album album = albums.get(position);
holder.albumTitle.setText(MusicUtil.getReadableInfo(album.getTitle()));
holder.albumArtist.setText(MusicUtil.getReadableInfo(album.getArtistName()));
holder.albumTitle.setText(MusicUtil.getReadableString(album.getTitle()));
holder.albumArtist.setText(MusicUtil.getReadableString(album.getArtistName()));
CustomGlideRequest.Builder
.from(context, album.getPrimary(), CustomGlideRequest.ALBUM_PIC)

View file

@ -44,7 +44,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
holder.textArtistName.setText(MusicUtil.getReadableInfo(artist.getName()));
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
CustomGlideRequest.Builder
.from(context, artist.getId(), CustomGlideRequest.ARTIST_PIC)

View file

@ -81,7 +81,7 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
holder.textArtistName.setText(MusicUtil.getReadableInfo(artist.getName()));
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
CustomGlideRequest.Builder
.from(context, artist.getId(), CustomGlideRequest.ARTIST_PIC)

View file

@ -50,7 +50,7 @@ public class ArtistHorizontalAdapter extends RecyclerView.Adapter<ArtistHorizont
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
holder.artistName.setText(MusicUtil.getReadableInfo(artist.getName()));
holder.artistName.setText(MusicUtil.getReadableString(artist.getName()));
holder.artistInfo.setText("Album count: " + String.valueOf(artist.getAlbumCount()));
CustomGlideRequest.Builder

View file

@ -43,7 +43,7 @@ public class ArtistSimilarAdapter extends RecyclerView.Adapter<ArtistSimilarAdap
public void onBindViewHolder(ViewHolder holder, int position) {
Artist artist = artists.get(position);
holder.textArtistName.setText(MusicUtil.getReadableInfo(artist.getName()));
holder.textArtistName.setText(MusicUtil.getReadableString(artist.getName()));
CustomGlideRequest.Builder
.from(context, artist.getId(), CustomGlideRequest.ALBUM_PIC)

View file

@ -50,8 +50,8 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
public void onBindViewHolder(ViewHolder holder, int position) {
Song song = songs.get(position);
holder.textTitle.setText(MusicUtil.getReadableInfo(song.getTitle()));
holder.textAlbum.setText(MusicUtil.getReadableInfo(song.getAlbumName()));
holder.textTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.textAlbum.setText(MusicUtil.getReadableString(song.getAlbumName()));
CustomGlideRequest.Builder
.from(context, song.getPrimary(), CustomGlideRequest.SONG_PIC)

View file

@ -40,7 +40,7 @@ public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder>
public void onBindViewHolder(ViewHolder holder, int position) {
Genre genre = genres.get(position);
holder.textGenre.setText(MusicUtil.getReadableInfo(genre.getName()));
holder.textGenre.setText(MusicUtil.getReadableString(genre.getName()));
}
@Override

View file

@ -77,7 +77,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
public void onBindViewHolder(ViewHolder holder, int position) {
Genre genre = genres.get(position);
holder.textGenre.setText(MusicUtil.getReadableInfo(genre.getName()));
holder.textGenre.setText(MusicUtil.getReadableString(genre.getName()));
}
@Override

View file

@ -48,8 +48,8 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
public void onBindViewHolder(ViewHolder holder, int position) {
Song song = songs.get(position);
holder.songTitle.setText(MusicUtil.getReadableInfo(song.getTitle()));
holder.songArtist.setText(MusicUtil.getReadableInfo(song.getArtistName()));
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtistName()));
CustomGlideRequest.Builder
.from(context, song.getPrimary(), CustomGlideRequest.SONG_PIC)

View file

@ -46,7 +46,7 @@ public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHo
public void onBindViewHolder(ViewHolder holder, int position) {
Playlist playlist = playlists.get(position);
holder.textPlaylistName.setText(MusicUtil.getReadableInfo(playlist.getName()));
holder.textPlaylistName.setText(MusicUtil.getReadableString(playlist.getName()));
holder.textPlaylistSongCount.setText("Song count: " + String.valueOf(playlist.getSongCount()));
CustomGlideRequest.Builder

View file

@ -79,7 +79,7 @@ public class PlaylistCatalogueAdapter extends RecyclerView.Adapter<PlaylistCatal
public void onBindViewHolder(ViewHolder holder, int position) {
Playlist playlist = playlists.get(position);
holder.textPlaylistName.setText(MusicUtil.getReadableInfo(playlist.getName()));
holder.textPlaylistName.setText(MusicUtil.getReadableString(playlist.getName()));
CustomGlideRequest.Builder
.from(context, playlist.getPrimary(), CustomGlideRequest.PLAYLIST_PIC)

View file

@ -55,8 +55,8 @@ public class RecentMusicAdapter extends RecyclerView.Adapter<RecentMusicAdapter.
public void onBindViewHolder(ViewHolder holder, int position) {
Song song = songs.get(position);
holder.textTitle.setText(MusicUtil.getReadableInfo(song.getTitle()));
holder.textAlbum.setText(MusicUtil.getReadableInfo(song.getAlbumName()));
holder.textTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.textAlbum.setText(MusicUtil.getReadableString(song.getAlbumName()));
CustomGlideRequest.Builder
.from(context, song.getPrimary(), CustomGlideRequest.SONG_PIC)

View file

@ -52,8 +52,8 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
public void onBindViewHolder(ViewHolder holder, int position) {
Song song = songs.get(position);
holder.songTitle.setText(MusicUtil.getReadableInfo(song.getTitle()));
holder.songArtist.setText(MusicUtil.getReadableInfo(song.getArtistName()));
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtistName()));
holder.songDuration.setText(MusicUtil.getReadableDurationString(song.getDuration(), false));
if (song.isOffline()) {

View file

@ -412,10 +412,10 @@ public class MusicService extends Service implements Playback.PlaybackCallbacks
}
final MediaMetadataCompat.Builder metaData = new MediaMetadataCompat.Builder()
.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, MusicUtil.getReadableInfo(song.getArtistName()))
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, MusicUtil.getReadableInfo(song.getArtistName()))
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, MusicUtil.getReadableInfo(song.getAlbumName()))
.putString(MediaMetadataCompat.METADATA_KEY_TITLE, MusicUtil.getReadableInfo(song.getTitle()))
.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, MusicUtil.getReadableString(song.getArtistName()))
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, MusicUtil.getReadableString(song.getArtistName()))
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, MusicUtil.getReadableString(song.getAlbumName()))
.putString(MediaMetadataCompat.METADATA_KEY_TITLE, MusicUtil.getReadableString(song.getTitle()))
.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, song.getDuration() * 1000)
.putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, getPosition() + 1)
.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, song.getYear())

View file

@ -112,10 +112,10 @@ public class AlbumPageFragment extends Fragment {
activity.getSupportActionBar().setDisplayShowHomeEnabled(true);
}
bind.animToolbar.setTitle(MusicUtil.getReadableInfo(albumPageViewModel.getAlbum().getTitle()));
bind.animToolbar.setTitle(MusicUtil.getReadableString(albumPageViewModel.getAlbum().getTitle()));
bind.albumNameLabel.setText(MusicUtil.getReadableInfo(albumPageViewModel.getAlbum().getTitle()));
bind.albumArtistLabel.setText(MusicUtil.getReadableInfo(albumPageViewModel.getAlbum().getArtistName()));
bind.albumNameLabel.setText(MusicUtil.getReadableString(albumPageViewModel.getAlbum().getTitle()));
bind.albumArtistLabel.setText(MusicUtil.getReadableString(albumPageViewModel.getAlbum().getArtistName()));
bind.albumReleaseYearLabel.setText(albumPageViewModel.getAlbum().getYear() != 0 ? String.valueOf(albumPageViewModel.getAlbum().getYear()) : "");
bind.animToolbar.setNavigationOnClickListener(v -> activity.navController.navigateUp());

View file

@ -95,7 +95,7 @@ public class ArtistPageFragment extends Fragment {
if (activity.getSupportActionBar() != null)
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
bind.collapsingToolbar.setTitle(MusicUtil.getReadableInfo(artistPageViewModel.getArtist().getName()));
bind.collapsingToolbar.setTitle(MusicUtil.getReadableString(artistPageViewModel.getArtist().getName()));
bind.animToolbar.setNavigationOnClickListener(v -> activity.navController.navigateUp());
bind.collapsingToolbar.setCollapsedTitleTextColor(getResources().getColor(R.color.titleTextColor, null));

View file

@ -97,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(MusicUtil.getReadableInfo(genre.getName()));
chip.setText(MusicUtil.getReadableString(genre.getName()));
chip.setChecked(filterViewModel.getFilters().contains(genre.getId()));
chip.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked)

View file

@ -265,11 +265,11 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE
}
private void setSongInfo(Song song) {
bind.playerBodyLayout.playerSongTitleLabel.setText(MusicUtil.getReadableInfo(song.getTitle()));
bind.playerBodyLayout.playerArtistNameLabel.setText(MusicUtil.getReadableInfo(song.getArtistName()));
bind.playerBodyLayout.playerSongTitleLabel.setText(MusicUtil.getReadableString(song.getTitle()));
bind.playerBodyLayout.playerArtistNameLabel.setText(MusicUtil.getReadableString(song.getArtistName()));
bind.playerHeaderLayout.playerHeaderSongTitleLabel.setText(MusicUtil.getReadableInfo(song.getTitle()));
bind.playerHeaderLayout.playerHeaderSongArtistLabel.setText(MusicUtil.getReadableInfo(song.getArtistName()));
bind.playerHeaderLayout.playerHeaderSongTitleLabel.setText(MusicUtil.getReadableString(song.getTitle()));
bind.playerHeaderLayout.playerHeaderSongArtistLabel.setText(MusicUtil.getReadableString(song.getArtistName()));
CustomGlideRequest.Builder
.from(requireContext(), song.getPrimary(), CustomGlideRequest.SONG_PIC)

View file

@ -17,6 +17,7 @@ import com.cappielloantonio.play.adapter.ArtistAdapter;
import com.cappielloantonio.play.adapter.SongHorizontalAdapter;
import com.cappielloantonio.play.databinding.FragmentSearchBinding;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.util.MusicUtil;
import com.cappielloantonio.play.viewmodel.SearchViewModel;
import com.paulrybitskyi.persistentsearchview.adapters.model.SuggestionItem;
import com.paulrybitskyi.persistentsearchview.listeners.OnSuggestionChangeListener;
@ -100,7 +101,7 @@ public class SearchFragment extends Fragment {
bind.persistentSearchView.setOnSearchQueryChangeListener((searchView, oldQuery, newQuery) -> {
if (!newQuery.trim().equals("") && newQuery.trim().length() > 1) {
searchViewModel.getSearchSuggestion(newQuery).observe(requireActivity(), suggestions -> {
searchView.setSuggestions(SuggestionCreationUtil.asRegularSearchSuggestions(suggestions), false);
searchView.setSuggestions(SuggestionCreationUtil.asRegularSearchSuggestions(MusicUtil.getReadableStrings(suggestions)), false);
});
} else {
setSuggestions();

View file

@ -72,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(MusicUtil.getReadableInfo(songListPageViewModel.genre.getName()) + ": all tracks");
bind.pageTitleLabel.setText(MusicUtil.getReadableString(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(MusicUtil.getReadableInfo(songListPageViewModel.artist.getName()) + "'s top tracks");
bind.pageTitleLabel.setText(MusicUtil.getReadableString(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");

View file

@ -79,11 +79,11 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
.into(coverAlbum);
titleAlbum = view.findViewById(R.id.album_title_text_view);
titleAlbum.setText(MusicUtil.getReadableInfo(albumBottomSheetViewModel.getAlbum().getTitle()));
titleAlbum.setText(MusicUtil.getReadableString(albumBottomSheetViewModel.getAlbum().getTitle()));
titleAlbum.setSelected(true);
artistAlbum = view.findViewById(R.id.album_artist_text_view);
artistAlbum.setText(MusicUtil.getReadableInfo(albumBottomSheetViewModel.getAlbum().getArtistName()));
artistAlbum.setText(MusicUtil.getReadableString(albumBottomSheetViewModel.getAlbum().getArtistName()));
favoriteToggle = view.findViewById(R.id.button_favorite);
favoriteToggle.setChecked(albumBottomSheetViewModel.getAlbum().isFavorite());

View file

@ -71,7 +71,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
.into(coverArtist);
nameArtist = view.findViewById(R.id.song_title_text_view);
nameArtist.setText(MusicUtil.getReadableInfo(artistBottomSheetViewModel.getArtist().getName()));
nameArtist.setText(MusicUtil.getReadableString(artistBottomSheetViewModel.getArtist().getName()));
nameArtist.setSelected(true);
favoriteToggle = view.findViewById(R.id.button_favorite);

View file

@ -75,12 +75,12 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
.into(coverSong);
titleSong = view.findViewById(R.id.song_title_text_view);
titleSong.setText(MusicUtil.getReadableInfo(songBottomSheetViewModel.getSong().getTitle()));
titleSong.setText(MusicUtil.getReadableString(songBottomSheetViewModel.getSong().getTitle()));
titleSong.setSelected(true);
artistSong = view.findViewById(R.id.song_artist_text_view);
artistSong.setText(MusicUtil.getReadableInfo(songBottomSheetViewModel.getSong().getArtistName()));
artistSong.setText(MusicUtil.getReadableString(songBottomSheetViewModel.getSong().getArtistName()));
favoriteToggle = view.findViewById(R.id.button_favorite);
favoriteToggle.setChecked(songBottomSheetViewModel.getSong().isFavorite());

View file

@ -8,6 +8,8 @@ import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.Song;
import com.google.android.exoplayer2.MediaItem;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@ -49,14 +51,28 @@ public class MusicUtil {
}
}
public static String getReadableInfo(String info) {
if (info != null) {
return Html.fromHtml(info, Html.FROM_HTML_MODE_COMPACT).toString();
public static String getReadableString(String string) {
if (string != null) {
return Html.fromHtml(string, Html.FROM_HTML_MODE_COMPACT).toString();
}
return "";
}
public static List<String> getReadableStrings(List<String> strings) {
List<String> readableStrings = new ArrayList<>();
if (strings.size() > 0) {
for (String string : strings) {
if (string != null) {
readableStrings.add(Html.fromHtml(string, Html.FROM_HTML_MODE_COMPACT).toString());
}
}
}
return readableStrings;
}
public static int getDefaultPicPerCategory(String category) {
if (category.equals(CustomGlideRequest.SONG_PIC)) {
return R.drawable.default_album_art;