diff --git a/app/src/main/java/org/oxycblt/auxio/detail/ReadOnlyTextInput.kt b/app/src/main/java/org/oxycblt/auxio/detail/ReadOnlyTextInput.kt index a9dadf38e..f62689353 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ReadOnlyTextInput.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ReadOnlyTextInput.kt @@ -25,6 +25,13 @@ import android.view.View import androidx.annotation.AttrRes import com.google.android.material.textfield.TextInputEditText +/** + * A [TextInputEditText] that deliberately restricts all input except for selection. Yes, this is a + * blatant abuse of Material Design Guidelines, but I also don't want to figure out how to main + * plain text selectable. + * + * @author OxygenCobalt + */ class ReadOnlyTextInput : TextInputEditText { constructor(context: Context) : super(context) diff --git a/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt index f28f9b9fd..1b97baa96 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt @@ -18,6 +18,7 @@ package org.oxycblt.auxio.detail import android.os.Bundle +import android.text.format.Formatter import android.view.LayoutInflater import android.webkit.MimeTypeMap import androidx.appcompat.app.AlertDialog @@ -28,6 +29,7 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogSongDetailBinding import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.ui.ViewBindingDialogFragment +import org.oxycblt.auxio.util.formatDuration import org.oxycblt.auxio.util.launch class SongDetailDialog : ViewBindingDialogFragment() { @@ -53,6 +55,13 @@ class SongDetailDialog : ViewBindingDialogFragment() { if (song != null) { binding.detailContainer.isGone = false + binding.detailFileName.setText(song.song.path.name) + binding.detailRelativeDir.setText(song.song.path.parent.resolveName(requireContext())) + binding.detailFormat.setText( + mimeTypes.getExtensionFromMimeType(song.song.mimeType)?.uppercase() + ?: getString(R.string.def_format)) + binding.detailSize.setText(Formatter.formatFileSize(requireContext(), song.song.size)) + binding.detailDuration.setText(song.song.durationSecs.formatDuration(true)) if (song.bitrateKbps != null) { binding.detailBitrate.setText(getString(R.string.fmt_bitrate, song.bitrateKbps))