diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/PlayerFragment.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/PlayerFragment.kt index 02cfb4be..06a2684f 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/PlayerFragment.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/PlayerFragment.kt @@ -59,7 +59,6 @@ import kotlinx.coroutines.cancel import kotlinx.coroutines.launch import org.koin.android.ext.android.inject import org.koin.core.component.KoinComponent -import org.koin.core.component.get import org.moire.ultrasonic.R import org.moire.ultrasonic.adapters.BaseAdapter import org.moire.ultrasonic.adapters.TrackViewBinder @@ -137,8 +136,10 @@ class PlayerFragment : private lateinit var playlistFlipper: ViewFlipper private lateinit var emptyTextView: TextView private lateinit var songTitleTextView: TextView - private lateinit var albumTextView: TextView private lateinit var artistTextView: TextView + private lateinit var albumTextView: TextView + private lateinit var genreTextView: TextView + private lateinit var bitrateFormatTextView: TextView private lateinit var albumArtImageView: ImageView private lateinit var playlistView: RecyclerView private lateinit var positionTextView: TextView @@ -174,8 +175,10 @@ class PlayerFragment : playlistFlipper = view.findViewById(R.id.current_playing_playlist_flipper) emptyTextView = view.findViewById(R.id.playlist_empty) songTitleTextView = view.findViewById(R.id.current_playing_song) - albumTextView = view.findViewById(R.id.current_playing_album) artistTextView = view.findViewById(R.id.current_playing_artist) + albumTextView = view.findViewById(R.id.current_playing_album) + genreTextView = view.findViewById(R.id.current_playing_genre) + bitrateFormatTextView = view.findViewById(R.id.current_playing_bitrate_format) albumArtImageView = view.findViewById(R.id.current_playing_album_art_image) positionTextView = view.findViewById(R.id.current_playing_position) downloadTrackTextView = view.findViewById(R.id.current_playing_track) @@ -979,8 +982,32 @@ class PlayerFragment : if (currentPlaying != null) { currentSong = currentPlaying!!.song songTitleTextView.text = currentSong!!.title - albumTextView.text = currentSong!!.album artistTextView.text = currentSong!!.artist + albumTextView.text = currentSong!!.album + if (currentSong!!.year != null && Settings.showNowPlayingDetails) + albumTextView.append(String.format(Locale.ROOT, " (%d)", currentSong!!.year)) + + if (Settings.showNowPlayingDetails) { + genreTextView.text = currentSong!!.genre + genreTextView.isVisible = + (currentSong!!.genre != null && currentSong!!.genre!!.isNotBlank()) + + var bitRate: String = "" + if (currentSong!!.bitRate != null && currentSong!!.bitRate!! > 0) + bitRate = String.format( + Util.appContext().getString(R.string.song_details_kbps), + currentSong!!.bitRate + ) + bitrateFormatTextView.text = String.format( + Locale.ROOT, "%s %s", + bitRate, currentSong!!.suffix + ) + bitrateFormatTextView.isVisible = true + } else { + genreTextView.isVisible = false + bitrateFormatTextView.isVisible = false + } + downloadTrackTextView.text = trackFormat downloadTotalDurationTextView.text = duration imageLoaderProvider.getImageLoader() @@ -989,8 +1016,10 @@ class PlayerFragment : } else { currentSong = null songTitleTextView.text = null - albumTextView.text = null artistTextView.text = null + albumTextView.text = null + genreTextView.text = null + bitrateFormatTextView.text = null downloadTrackTextView.text = null downloadTotalDurationTextView.text = null imageLoaderProvider.getImageLoader() diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Constants.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Constants.kt index f722e7ae..8d0f6dc1 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Constants.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Constants.kt @@ -90,6 +90,7 @@ object Constants { const val PREFERENCES_KEY_CLEAR_SEARCH_HISTORY = "clearSearchHistory" const val PREFERENCES_KEY_DOWNLOAD_TRANSITION = "transitionToDownloadOnPlay" const val PREFERENCES_KEY_INCREMENT_TIME = "incrementTime" + const val PREFERENCES_KEY_SHOW_NOW_PLAYING_DETAILS = "showNowPlayingDetails" const val PREFERENCES_KEY_ID3_TAGS = "useId3Tags" const val PREFERENCES_KEY_SHOW_ARTIST_PICTURE = "showArtistPicture" const val PREFERENCES_KEY_TEMP_LOSS = "tempLoss" diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt index dd6697fe..c286bd69 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt @@ -189,6 +189,10 @@ object Settings { true ) + @JvmStatic + var showNowPlayingDetails + by BooleanSetting(Constants.PREFERENCES_KEY_SHOW_NOW_PLAYING_DETAILS, false) + @JvmStatic var shouldUseId3Tags by BooleanSetting(Constants.PREFERENCES_KEY_ID3_TAGS, false) diff --git a/ultrasonic/src/main/res/layout/player_media_info.xml b/ultrasonic/src/main/res/layout/player_media_info.xml index fe23ebd9..eae76952 100644 --- a/ultrasonic/src/main/res/layout/player_media_info.xml +++ b/ultrasonic/src/main/res/layout/player_media_info.xml @@ -19,9 +19,9 @@ a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_marginEnd="10dip" - a:paddingRight="30dip" a:ellipsize="marquee" a:gravity="left" + a:paddingRight="30dip" a:singleLine="true" a:textAppearance="?android:attr/textAppearanceLarge" a:textStyle="bold" @@ -47,6 +47,16 @@ a:textAppearance="?android:attr/textAppearanceSmall" tools:text="Album" /> + + + a:orientation="vertical" + tools:ignore="RelativeOverlap"> + + - \ No newline at end of file diff --git a/ultrasonic/src/main/res/values-cs/strings.xml b/ultrasonic/src/main/res/values-cs/strings.xml index 22de3c79..0a73a3ce 100644 --- a/ultrasonic/src/main/res/values-cs/strings.xml +++ b/ultrasonic/src/main/res/values-cs/strings.xml @@ -300,7 +300,6 @@ Obrázek umělce v seznamu umělců Zobrazí obrázek umělce v náhledu umělců pokud je dostupný Video - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-de/strings.xml b/ultrasonic/src/main/res/values-de/strings.xml index 9dee8ff2..e8f23c6a 100644 --- a/ultrasonic/src/main/res/values-de/strings.xml +++ b/ultrasonic/src/main/res/values-de/strings.xml @@ -315,7 +315,6 @@ Film Medien nur über gebührenfreie Verbindungen herunterladen Nur über WLAN herunterladen - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-es/strings.xml b/ultrasonic/src/main/res/values-es/strings.xml index bc29dc60..497c5ea5 100644 --- a/ultrasonic/src/main/res/values-es/strings.xml +++ b/ultrasonic/src/main/res/values-es/strings.xml @@ -329,7 +329,6 @@ Vídeo Solo descargar medios en conexiones sin medir Descargar solo por Wi-Fi - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-fr/strings.xml b/ultrasonic/src/main/res/values-fr/strings.xml index c5b4137c..c4349fcd 100644 --- a/ultrasonic/src/main/res/values-fr/strings.xml +++ b/ultrasonic/src/main/res/values-fr/strings.xml @@ -322,7 +322,6 @@ Afficher l’image de l’artiste dans la liste Affiche l’image de l’artiste dans la liste des artistes si celle-ci est disponible Vidéo - %1$s%2$s %d Kb/s 0 o 0.00 Go diff --git a/ultrasonic/src/main/res/values-hu/strings.xml b/ultrasonic/src/main/res/values-hu/strings.xml index d73b966d..d3e1469e 100644 --- a/ultrasonic/src/main/res/values-hu/strings.xml +++ b/ultrasonic/src/main/res/values-hu/strings.xml @@ -311,7 +311,6 @@ Előadó képének megjelenítése Az előadó listában megjeleníti a képeket, amennyiben elérhetőek Videó - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-it/strings.xml b/ultrasonic/src/main/res/values-it/strings.xml index 55d0f592..54122b09 100644 --- a/ultrasonic/src/main/res/values-it/strings.xml +++ b/ultrasonic/src/main/res/values-it/strings.xml @@ -287,7 +287,6 @@ Sfoglia Utilizzando Tag ID3 Usa metodi tag ID3 invece dei metodi basati sul filesystem Video - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-nl/strings.xml b/ultrasonic/src/main/res/values-nl/strings.xml index 6931ce7f..6c61b2e3 100644 --- a/ultrasonic/src/main/res/values-nl/strings.xml +++ b/ultrasonic/src/main/res/values-nl/strings.xml @@ -329,7 +329,6 @@ Video Haal media alleen op bij gebruik van onbeperkte dataverbindingen Alleen ophalen via wifi - %1$s%2$s %d kbps 0 B 0,00 GB diff --git a/ultrasonic/src/main/res/values-pl/strings.xml b/ultrasonic/src/main/res/values-pl/strings.xml index fda207bd..8da636ff 100644 --- a/ultrasonic/src/main/res/values-pl/strings.xml +++ b/ultrasonic/src/main/res/values-pl/strings.xml @@ -297,7 +297,6 @@ ponieważ api Subsonic nie wspiera nowego sposobu autoryzacji dla użytkowników Przeglądaj używając tagów ID3 Używa metod z tagów ID3 zamiast metod opartych na systemie plików Wideo - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-pt-rBR/strings.xml b/ultrasonic/src/main/res/values-pt-rBR/strings.xml index 994c6c59..fdb74339 100644 --- a/ultrasonic/src/main/res/values-pt-rBR/strings.xml +++ b/ultrasonic/src/main/res/values-pt-rBR/strings.xml @@ -321,7 +321,6 @@ Mostrar Foto do Artista na Lista Mostrar a imagem do artista na lista de artistas, se disponível Vídeo - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-pt/strings.xml b/ultrasonic/src/main/res/values-pt/strings.xml index f5b1dde4..494a4b27 100644 --- a/ultrasonic/src/main/res/values-pt/strings.xml +++ b/ultrasonic/src/main/res/values-pt/strings.xml @@ -297,7 +297,6 @@ Navegar Usando Etiquetas ID3 Usa as etiquetas ID3 ao invés do sistema de ficheiros Vídeo - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-ru/strings.xml b/ultrasonic/src/main/res/values-ru/strings.xml index 11800b99..6a00a53f 100644 --- a/ultrasonic/src/main/res/values-ru/strings.xml +++ b/ultrasonic/src/main/res/values-ru/strings.xml @@ -313,7 +313,6 @@ Показать изображение исполнителя в списке исполнителей Отображает изображение исполнителя в списке исполнителей, если доступно Видео - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values-zh-rCN/strings.xml b/ultrasonic/src/main/res/values-zh-rCN/strings.xml index a31bcdce..c171c516 100644 --- a/ultrasonic/src/main/res/values-zh-rCN/strings.xml +++ b/ultrasonic/src/main/res/values-zh-rCN/strings.xml @@ -323,7 +323,6 @@ 视频 仅未计量的网络用于下载媒体 仅使用Wi-Fi进行下载 - %1$s%2$s %d kbps 0 B 0.00 GB diff --git a/ultrasonic/src/main/res/values/strings.xml b/ultrasonic/src/main/res/values/strings.xml index 9c51cf11..3c436b07 100644 --- a/ultrasonic/src/main/res/values/strings.xml +++ b/ultrasonic/src/main/res/values/strings.xml @@ -340,6 +340,8 @@ This forces the app to always send the password unencrypted. Useful if the Subsonic server does not support the new authentication API for the users. Use Folders For Artist Name Assume top-level folder is the name of the album artist + Show more song details in Now Playing (genre, year, bitrate) + Show details in Now Playing Browse Using ID3 Tags Use ID3 tag methods instead of file system based methods Show artist picture in artist list @@ -347,7 +349,7 @@ Video Only download media on unmetered connections Download on Wi-Fi only - %1$s%2$s + %1$s%2$s %d kbps 0 B 0.00 GB @@ -484,7 +486,6 @@ Use five star rating for songs - Use five star rating system for songs instead of simply starring/unstarring items. - + Use five star rating system for songs instead of simply starring/unstarring items. diff --git a/ultrasonic/src/main/res/xml/settings.xml b/ultrasonic/src/main/res/xml/settings.xml index ed81370e..bb910910 100644 --- a/ultrasonic/src/main/res/xml/settings.xml +++ b/ultrasonic/src/main/res/xml/settings.xml @@ -53,6 +53,12 @@ a:title="@string/settings.playback_control_title" a:key="playbackControlSettings" app:iconSpaceReserved="false"> +