feat: added optional information about audio quality for horizontal track adapters

This commit is contained in:
CappielloAntonio 2024-02-18 17:14:41 +01:00
parent 733102a8a4
commit 7488346804
9 changed files with 44 additions and 6 deletions

View file

@ -49,7 +49,20 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
Child song = songs.get(position);
holder.item.searchResultSongTitleTextView.setText(MusicUtil.getReadableString(song.getTitle()));
holder.item.searchResultSongSubtitleTextView.setText(holder.itemView.getContext().getString(R.string.song_subtitle_formatter, MusicUtil.getReadableString(this.showAlbum ? song.getAlbum() : song.getArtist()), MusicUtil.getReadableDurationString(song.getDuration(), false)));
holder.item.searchResultSongSubtitleTextView.setText(
holder.itemView.getContext().getString(
R.string.song_subtitle_formatter,
MusicUtil.getReadableString(
this.showAlbum ?
song.getAlbum() :
song.getArtist()
),
MusicUtil.getReadableDurationString(song.getDuration(), false),
MusicUtil.getReadableAudioQualityString(song)
)
);
holder.item.trackNumberTextView.setText(MusicUtil.getReadableTrackNumber(holder.itemView.getContext(), song.getTrack()));
if (DownloadUtil.getDownloadTracker(holder.itemView.getContext()).isDownloaded(song.getId())) {

View file

@ -156,6 +156,17 @@ public class MusicUtil {
return getReadableDurationString(lenght, millis);
}
public static String getReadableAudioQualityString(Child child) {
if (!Preferences.showAudioQuality()) return "";
return "" +
" " +
child.getBitrate() +
"kbps" +
" " +
child.getSuffix();
}
public static String getReadablePodcastDurationString(long duration) {
long minutes = duration / 60;

View file

@ -54,6 +54,7 @@ object Preferences {
private const val MIN_STAR_RATING = "min_star_rating"
private const val ARTIST_ALBUM_LAYOUT = "artist_album_layout"
private const val ALWAYS_ON_DISPLAY = "always_on_display"
private const val AUDIO_QUALITY_PER_ITEM = "audio_quality_per_item"
@JvmStatic
@ -390,4 +391,9 @@ object Preferences {
fun isDisplayAlwaysOn(): Boolean {
return App.getInstance().preferences.getBoolean(ALWAYS_ON_DISPLAY, false)
}
@JvmStatic
fun showAudioQuality(): Boolean {
return App.getInstance().preferences.getBoolean(AUDIO_QUALITY_PER_ITEM, false)
}
}

View file

@ -313,7 +313,7 @@
<string name="song_list_page_starred">Lieblingslieder</string>
<string name="song_list_page_top">%1$s\'s Top Tracks</string>
<string name="song_list_page_year">Jahr %1$d</string>
<string name="song_subtitle_formatter">%1$s • %2$s</string>
<string name="song_subtitle_formatter">%1$s • %2$s %3$s</string>
<string name="starred_sync_dialog_negative_button">Abbrechen</string>
<string name="starred_sync_dialog_neutral_button">Weiter</string>
<string name="starred_sync_dialog_positive_button">Weiter und Herunterladen</string>

View file

@ -328,7 +328,7 @@
<string name="song_list_page_starred">Titres favoris</string>
<string name="song_list_page_top">Les meilleurs titres de %1$s</string>
<string name="song_list_page_year">Année %1$d</string>
<string name="song_subtitle_formatter">%1$s • %2$s</string>
<string name="song_subtitle_formatter">%1$s • %2$s %3$s</string>
<string name="starred_sync_dialog_negative_button">Annuler</string>
<string name="starred_sync_dialog_neutral_button">Continuer</string>
<string name="starred_sync_dialog_positive_button">Continuer et télécharger</string>

View file

@ -331,7 +331,7 @@
<string name="song_list_page_starred">즐겨찾기한 트랙</string>
<string name="song_list_page_top">%1$s\의 top tracks</string>
<string name="song_list_page_year">년도 %1$d</string>
<string name="song_subtitle_formatter">%1$s • %2$s</string>
<string name="song_subtitle_formatter">%1$s • %2$s %3$s</string>
<string name="starred_sync_dialog_negative_button">취소</string>
<string name="starred_sync_dialog_neutral_button">계속</string>
<string name="starred_sync_dialog_positive_button">계속해서 다운로드</string>

View file

@ -330,7 +330,7 @@
<string name="song_list_page_starred">Músicas favoritas</string>
<string name="song_list_page_top">Músicas preferidas de %1$s</string>
<string name="song_list_page_year">Ano %1$d</string>
<string name="song_subtitle_formatter">%1$s • %2$s</string>
<string name="song_subtitle_formatter">%1$s • %2$s %3$s</string>
<string name="starred_sync_dialog_negative_button">Cancelar</string>
<string name="starred_sync_dialog_neutral_button">Continuar</string>
<string name="starred_sync_dialog_positive_button">Continuar e baixar</string>

View file

@ -262,6 +262,8 @@
<string name="settings_music_directory_summary">If enabled, show the music directory section. Please note that for folder navigation to work properly, the server must support this feature.</string>
<string name="settings_podcast">Show podcast</string>
<string name="settings_podcast_summary">If enabled, show the podcast section. Restart the app for it to take full effect.</string>
<string name="settings_audio_quality">Show audio quality</string>
<string name="settings_audio_quality_summary">The bitrate and audio format will be shown for each audio track</string>
<string name="settings_queue_syncing_countdown">Sync timer</string>
<string name="settings_queue_syncing_summary">If enabled, the user will have the ability to save their play queue and will have the ability to load state when opening the application.</string>
<string name="settings_queue_syncing_title">Sync play queue for this user</string>
@ -333,7 +335,7 @@
<string name="song_list_page_starred">Starred tracks</string>
<string name="song_list_page_top">%1$s\'s top tracks</string>
<string name="song_list_page_year">Year %1$d</string>
<string name="song_subtitle_formatter">%1$s • %2$s</string>
<string name="song_subtitle_formatter">%1$s • %2$s %3$s</string>
<string name="starred_sync_dialog_negative_button">Cancel</string>
<string name="starred_sync_dialog_neutral_button">Continue</string>
<string name="starred_sync_dialog_positive_button">Continue and download</string>

View file

@ -51,6 +51,12 @@
app:title="@string/settings_rounded_corner_size"
app:useSimpleSummaryProvider="true" />
<SwitchPreference
android:title="@string/settings_audio_quality"
android:defaultValue="false"
android:summary="@string/settings_audio_quality_summary"
android:key="audio_quality_per_item" />
<SwitchPreference
android:title="@string/settings_podcast"
android:defaultValue="true"