Merge pull request #710 from hmueller01/detailed-media-info

Add detailed song information to Now Playing
This commit is contained in:
tzugen 2022-03-23 13:06:22 +01:00 committed by GitHub
commit 107b01fd91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 72 additions and 23 deletions

View File

@ -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()

View File

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

View File

@ -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)

View File

@ -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" />
<TextView
a:id="@+id/current_playing_genre"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:ellipsize="start"
a:gravity="right"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall"
tools:text="Genre" />
</LinearLayout>
<LinearLayout
@ -55,7 +65,8 @@
a:layout_alignParentRight="true"
a:layout_centerVertical="true"
a:gravity="right"
a:orientation="vertical">
a:orientation="vertical"
tools:ignore="RelativeOverlap">
<TextView
a:id="@+id/current_playing_track"
@ -76,7 +87,16 @@
a:text="@string/util.no_time"
a:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
a:id="@+id/current_playing_bitrate_format"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:ellipsize="start"
a:gravity="right"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall"
tools:text="Details" />
</LinearLayout>
</RelativeLayout>

View File

@ -300,7 +300,6 @@
<string name="settings.show_artist_picture">Obrázek umělce v seznamu umělců</string>
<string name="settings.show_artist_picture_summary">Zobrazí obrázek umělce v náhledu umělců pokud je dostupný</string>
<string name="main.video" tools:ignore="UnusedResources">Video</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -315,7 +315,6 @@
<string name="main.video" tools:ignore="UnusedResources">Film</string>
<string name="settings.wifi_required_summary">Medien nur über gebührenfreie Verbindungen herunterladen</string>
<string name="settings.wifi_required_title">Nur über WLAN herunterladen</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -329,7 +329,6 @@
<string name="main.video" tools:ignore="UnusedResources">Vídeo</string>
<string name="settings.wifi_required_summary">Solo descargar medios en conexiones sin medir</string>
<string name="settings.wifi_required_title">Descargar solo por Wi-Fi</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -322,7 +322,6 @@
<string name="settings.show_artist_picture">Afficher limage de lartiste dans la liste</string>
<string name="settings.show_artist_picture_summary">Affiche limage de lartiste dans la liste des artistes si celle-ci est disponible</string>
<string name="main.video" tools:ignore="UnusedResources">Vidéo</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d Kb/s</string>
<string name="util.bytes_format.byte">0 o</string>
<string name="util.bytes_format.gigabyte">0.00 Go</string>

View File

@ -311,7 +311,6 @@
<string name="settings.show_artist_picture">Előadó képének megjelenítése</string>
<string name="settings.show_artist_picture_summary">Az előadó listában megjeleníti a képeket, amennyiben elérhetőek</string>
<string name="main.video" tools:ignore="UnusedResources">Videó</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -287,7 +287,6 @@
<string name="settings.use_id3">Sfoglia Utilizzando Tag ID3</string>
<string name="settings.use_id3_summary">Usa metodi tag ID3 invece dei metodi basati sul filesystem</string>
<string name="main.video" tools:ignore="UnusedResources">Video</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -329,7 +329,6 @@
<string name="main.video" tools:ignore="UnusedResources">Video</string>
<string name="settings.wifi_required_summary">Haal media alleen op bij gebruik van onbeperkte dataverbindingen</string>
<string name="settings.wifi_required_title">Alleen ophalen via wifi</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0,00 GB</string>

View File

@ -297,7 +297,6 @@ ponieważ api Subsonic nie wspiera nowego sposobu autoryzacji dla użytkowników
<string name="settings.use_id3">Przeglądaj używając tagów ID3</string>
<string name="settings.use_id3_summary">Używa metod z tagów ID3 zamiast metod opartych na systemie plików</string>
<string name="main.video" tools:ignore="UnusedResources">Wideo</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -321,7 +321,6 @@
<string name="settings.show_artist_picture">Mostrar Foto do Artista na Lista</string>
<string name="settings.show_artist_picture_summary">Mostrar a imagem do artista na lista de artistas, se disponível</string>
<string name="main.video" tools:ignore="UnusedResources">Vídeo</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -297,7 +297,6 @@
<string name="settings.use_id3">Navegar Usando Etiquetas ID3</string>
<string name="settings.use_id3_summary">Usa as etiquetas ID3 ao invés do sistema de ficheiros</string>
<string name="main.video" tools:ignore="UnusedResources">Vídeo</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -313,7 +313,6 @@
<string name="settings.show_artist_picture">Показать изображение исполнителя в списке исполнителей</string>
<string name="settings.show_artist_picture_summary">Отображает изображение исполнителя в списке исполнителей, если доступно</string>
<string name="main.video" tools:ignore="UnusedResources">Видео</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -323,7 +323,6 @@
<string name="main.video" tools:ignore="UnusedResources">视频</string>
<string name="settings.wifi_required_summary">仅未计量的网络用于下载媒体</string>
<string name="settings.wifi_required_title">仅使用Wi-Fi进行下载</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>

View File

@ -340,6 +340,8 @@
<string name="settings.summary.enable_ldap_users_support">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.</string>
<string name="settings.use_folder_for_album_artist">Use Folders For Artist Name</string>
<string name="settings.use_folder_for_album_artist_summary">Assume top-level folder is the name of the album artist</string>
<string name="settings.show_now_playing_details_summary">Show more song details in Now Playing (genre, year, bitrate)</string>
<string name="settings.show_now_playing_details">Show details in Now Playing</string>
<string name="settings.use_id3">Browse Using ID3 Tags</string>
<string name="settings.use_id3_summary">Use ID3 tag methods instead of file system based methods</string>
<string name="settings.show_artist_picture">Show artist picture in artist list</string>
@ -347,7 +349,7 @@
<string name="main.video" tools:ignore="UnusedResources">Video</string>
<string name="settings.wifi_required_summary">Only download media on unmetered connections</string>
<string name="settings.wifi_required_title">Download on Wi-Fi only</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.all" translatable="false">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="util.bytes_format.byte">0 B</string>
<string name="util.bytes_format.gigabyte">0.00 GB</string>
@ -484,7 +486,6 @@
<!-- Subsonic features -->
<string name="settings.five_star_rating_title">Use five star rating for songs</string>
<string name="settings.five_star_rating_description">Use five star rating system for songs instead of simply starring/unstarring items.
</string>
<string name="settings.five_star_rating_description">Use five star rating system for songs instead of simply starring/unstarring items.</string>
</resources>

View File

@ -53,6 +53,12 @@
a:title="@string/settings.playback_control_title"
a:key="playbackControlSettings"
app:iconSpaceReserved="false">
<CheckBoxPreference
a:defaultValue="false"
a:key="showNowPlayingDetails"
a:summary="@string/settings.show_now_playing_details_summary"
a:title="@string/settings.show_now_playing_details"
app:iconSpaceReserved="false"/>
<CheckBoxPreference
a:defaultValue="true"
a:key="useId3Tags"