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">
+