mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Merge pull request #37 from jaime-grj/fix-trackinfodialog
fix: Show placeholder string in TrackInfoDialog fields when there is no data
This commit is contained in:
commit
e98c9483c8
5 changed files with 49 additions and 18 deletions
|
|
@ -15,6 +15,8 @@ import com.cappielloantonio.tempo.util.MusicUtil;
|
||||||
import com.cappielloantonio.tempo.util.Preferences;
|
import com.cappielloantonio.tempo.util.Preferences;
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class TrackInfoDialog extends DialogFragment {
|
public class TrackInfoDialog extends DialogFragment {
|
||||||
private DialogTrackInfoBinding bind;
|
private DialogTrackInfoBinding bind;
|
||||||
|
|
||||||
|
|
@ -51,7 +53,12 @@ public class TrackInfoDialog extends DialogFragment {
|
||||||
|
|
||||||
private void setTrackInfo() {
|
private void setTrackInfo() {
|
||||||
bind.trakTitleInfoTextView.setText(mediaMetadata.title);
|
bind.trakTitleInfoTextView.setText(mediaMetadata.title);
|
||||||
bind.trakArtistInfoTextView.setText(mediaMetadata.artist);
|
bind.trakArtistInfoTextView.setText(
|
||||||
|
mediaMetadata.artist != null
|
||||||
|
? mediaMetadata.artist
|
||||||
|
: mediaMetadata.extras != null && Objects.equals(mediaMetadata.extras.getString("type"), Constants.MEDIA_TYPE_RADIO)
|
||||||
|
? mediaMetadata.extras.getString("uri", getString(R.string.label_placeholder))
|
||||||
|
: "");
|
||||||
|
|
||||||
if (mediaMetadata.extras != null) {
|
if (mediaMetadata.extras != null) {
|
||||||
CustomGlideRequest.Builder
|
CustomGlideRequest.Builder
|
||||||
|
|
@ -62,20 +69,20 @@ public class TrackInfoDialog extends DialogFragment {
|
||||||
bind.titleValueSector.setText(mediaMetadata.extras.getString("title", getString(R.string.label_placeholder)));
|
bind.titleValueSector.setText(mediaMetadata.extras.getString("title", getString(R.string.label_placeholder)));
|
||||||
bind.albumValueSector.setText(mediaMetadata.extras.getString("album", getString(R.string.label_placeholder)));
|
bind.albumValueSector.setText(mediaMetadata.extras.getString("album", getString(R.string.label_placeholder)));
|
||||||
bind.artistValueSector.setText(mediaMetadata.extras.getString("artist", getString(R.string.label_placeholder)));
|
bind.artistValueSector.setText(mediaMetadata.extras.getString("artist", getString(R.string.label_placeholder)));
|
||||||
bind.trackNumberValueSector.setText(String.valueOf(mediaMetadata.extras.getInt("track", 0)));
|
bind.trackNumberValueSector.setText(mediaMetadata.extras.getInt("track", 0) != 0 ? String.valueOf(mediaMetadata.extras.getInt("track", 0)) : getString(R.string.label_placeholder));
|
||||||
bind.yearValueSector.setText(String.valueOf(mediaMetadata.extras.getInt("year", 0)));
|
bind.yearValueSector.setText(mediaMetadata.extras.getInt("year", 0) != 0 ? String.valueOf(mediaMetadata.extras.getInt("year", 0)) : getString(R.string.label_placeholder));
|
||||||
bind.genreValueSector.setText(mediaMetadata.extras.getString("genre", getString(R.string.label_placeholder)));
|
bind.genreValueSector.setText(mediaMetadata.extras.getString("genre", getString(R.string.label_placeholder)));
|
||||||
bind.sizeValueSector.setText(MusicUtil.getReadableByteCount(mediaMetadata.extras.getLong("size", 0)));
|
bind.sizeValueSector.setText(mediaMetadata.extras.getLong("size", 0) != 0 ? MusicUtil.getReadableByteCount(mediaMetadata.extras.getLong("size", 0)) : getString(R.string.label_placeholder));
|
||||||
bind.contentTypeValueSector.setText(mediaMetadata.extras.getString("contentType", getString(R.string.label_placeholder)));
|
bind.contentTypeValueSector.setText(mediaMetadata.extras.getString("contentType", getString(R.string.label_placeholder)));
|
||||||
bind.suffixValueSector.setText(mediaMetadata.extras.getString("suffix", getString(R.string.label_placeholder)));
|
bind.suffixValueSector.setText(mediaMetadata.extras.getString("suffix", getString(R.string.label_placeholder)));
|
||||||
bind.transcodedContentTypeValueSector.setText(mediaMetadata.extras.getString("transcodedContentType", getString(R.string.label_placeholder)));
|
bind.transcodedContentTypeValueSector.setText(mediaMetadata.extras.getString("transcodedContentType", getString(R.string.label_placeholder)));
|
||||||
bind.transcodedSuffixValueSector.setText(mediaMetadata.extras.getString("transcodedSuffix", getString(R.string.label_placeholder)));
|
bind.transcodedSuffixValueSector.setText(mediaMetadata.extras.getString("transcodedSuffix", getString(R.string.label_placeholder)));
|
||||||
bind.durationValueSector.setText(MusicUtil.getReadableDurationString(mediaMetadata.extras.getInt("duration", 0), false));
|
bind.durationValueSector.setText(mediaMetadata.extras.getInt("duration", 0) != 0 ? MusicUtil.getReadableDurationString(mediaMetadata.extras.getInt("duration", 0), false) : getString(R.string.label_placeholder));
|
||||||
bind.bitrateValueSector.setText(mediaMetadata.extras.getInt("bitrate", 0) + " kbps");
|
bind.bitrateValueSector.setText(mediaMetadata.extras.getInt("bitrate", 0) != 0 ? mediaMetadata.extras.getInt("bitrate", 0) + " kbps" : getString(R.string.label_placeholder));
|
||||||
bind.samplingRateValueSector.setText(mediaMetadata.extras.getInt("samplingRate", 0) != 0 ? mediaMetadata.extras.getInt("samplingRate", 0) + " Hz" : getString(R.string.label_placeholder));
|
bind.samplingRateValueSector.setText(mediaMetadata.extras.getInt("samplingRate", 0) != 0 ? mediaMetadata.extras.getInt("samplingRate", 0) + " Hz" : getString(R.string.label_placeholder));
|
||||||
bind.bitDepthValueSector.setText(mediaMetadata.extras.getInt("bitDepth", 0) != 0 ? mediaMetadata.extras.getInt("bitDepth", 0) + " bits" : getString(R.string.label_placeholder));
|
bind.bitDepthValueSector.setText(mediaMetadata.extras.getInt("bitDepth", 0) != 0 ? mediaMetadata.extras.getInt("bitDepth", 0) + " bits" : getString(R.string.label_placeholder));
|
||||||
bind.pathValueSector.setText(mediaMetadata.extras.getString("path", getString(R.string.label_placeholder)));
|
bind.pathValueSector.setText(mediaMetadata.extras.getString("path", getString(R.string.label_placeholder)));
|
||||||
bind.discNumberValueSector.setText(String.valueOf(mediaMetadata.extras.getInt("discNumber", 0)));
|
bind.discNumberValueSector.setText(mediaMetadata.extras.getInt("discNumber", 0) != 0 ? String.valueOf(mediaMetadata.extras.getInt("discNumber", 0)) : getString(R.string.label_placeholder));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,12 @@ public class PlayerBottomSheetFragment extends Fragment {
|
||||||
playerBottomSheetViewModel.setLiveDescription(mediaMetadata.extras.getString("description", null));
|
playerBottomSheetViewModel.setLiveDescription(mediaMetadata.extras.getString("description", null));
|
||||||
|
|
||||||
bind.playerHeaderLayout.playerHeaderMediaTitleLabel.setText(mediaMetadata.extras.getString("title"));
|
bind.playerHeaderLayout.playerHeaderMediaTitleLabel.setText(mediaMetadata.extras.getString("title"));
|
||||||
bind.playerHeaderLayout.playerHeaderMediaArtistLabel.setText(mediaMetadata.extras.getString("artist"));
|
bind.playerHeaderLayout.playerHeaderMediaArtistLabel.setText(
|
||||||
|
mediaMetadata.artist != null
|
||||||
|
? mediaMetadata.artist
|
||||||
|
: Objects.equals(mediaMetadata.extras.getString("type"), Constants.MEDIA_TYPE_RADIO)
|
||||||
|
? mediaMetadata.extras.getString("uri", getString(R.string.label_placeholder))
|
||||||
|
: "");
|
||||||
|
|
||||||
CustomGlideRequest.Builder
|
CustomGlideRequest.Builder
|
||||||
.from(requireContext(), mediaMetadata.extras.getString("coverArtId"), CustomGlideRequest.ResourceType.Song)
|
.from(requireContext(), mediaMetadata.extras.getString("coverArtId"), CustomGlideRequest.ResourceType.Song)
|
||||||
|
|
@ -182,7 +187,11 @@ public class PlayerBottomSheetFragment extends Fragment {
|
||||||
.into(bind.playerHeaderLayout.playerHeaderMediaCoverImage);
|
.into(bind.playerHeaderLayout.playerHeaderMediaCoverImage);
|
||||||
|
|
||||||
bind.playerHeaderLayout.playerHeaderMediaTitleLabel.setVisibility(mediaMetadata.extras.getString("title") != null && !Objects.equals(mediaMetadata.extras.getString("title"), "") ? View.VISIBLE : View.GONE);
|
bind.playerHeaderLayout.playerHeaderMediaTitleLabel.setVisibility(mediaMetadata.extras.getString("title") != null && !Objects.equals(mediaMetadata.extras.getString("title"), "") ? View.VISIBLE : View.GONE);
|
||||||
bind.playerHeaderLayout.playerHeaderMediaArtistLabel.setVisibility(mediaMetadata.extras.getString("artist") != null && !Objects.equals(mediaMetadata.extras.getString("artist"), "") ? View.VISIBLE : View.GONE);
|
bind.playerHeaderLayout.playerHeaderMediaArtistLabel.setVisibility(
|
||||||
|
(mediaMetadata.extras.getString("artist") != null && !Objects.equals(mediaMetadata.extras.getString("artist"), ""))
|
||||||
|
|| (Objects.equals(mediaMetadata.extras.getString("type"), Constants.MEDIA_TYPE_RADIO) && mediaMetadata.extras.getString("uri") != null)
|
||||||
|
? View.VISIBLE
|
||||||
|
: View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,6 @@ public class PlayerControllerFragment extends Fragment {
|
||||||
bind.nowPlayingMediaControllerView.setPlayer(mediaBrowser);
|
bind.nowPlayingMediaControllerView.setPlayer(mediaBrowser);
|
||||||
mediaBrowser.setShuffleModeEnabled(Preferences.isShuffleModeEnabled());
|
mediaBrowser.setShuffleModeEnabled(Preferences.isShuffleModeEnabled());
|
||||||
mediaBrowser.setRepeatMode(Preferences.getRepeatMode());
|
mediaBrowser.setRepeatMode(Preferences.getRepeatMode());
|
||||||
|
|
||||||
setMediaControllerListener(mediaBrowser);
|
setMediaControllerListener(mediaBrowser);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -181,13 +180,22 @@ public class PlayerControllerFragment extends Fragment {
|
||||||
|
|
||||||
private void setMetadata(MediaMetadata mediaMetadata) {
|
private void setMetadata(MediaMetadata mediaMetadata) {
|
||||||
playerMediaTitleLabel.setText(String.valueOf(mediaMetadata.title));
|
playerMediaTitleLabel.setText(String.valueOf(mediaMetadata.title));
|
||||||
playerArtistNameLabel.setText(String.valueOf(mediaMetadata.artist));
|
playerArtistNameLabel.setText(
|
||||||
|
mediaMetadata.artist != null
|
||||||
|
? String.valueOf(mediaMetadata.artist)
|
||||||
|
: mediaMetadata.extras != null && Objects.equals(mediaMetadata.extras.getString("type"), Constants.MEDIA_TYPE_RADIO)
|
||||||
|
? mediaMetadata.extras.getString("uri", getString(R.string.label_placeholder))
|
||||||
|
: "");
|
||||||
|
|
||||||
playerMediaTitleLabel.setSelected(true);
|
playerMediaTitleLabel.setSelected(true);
|
||||||
playerArtistNameLabel.setSelected(true);
|
playerArtistNameLabel.setSelected(true);
|
||||||
|
|
||||||
playerMediaTitleLabel.setVisibility(mediaMetadata.title != null && !Objects.equals(mediaMetadata.title, "") ? View.VISIBLE : View.GONE);
|
playerMediaTitleLabel.setVisibility(mediaMetadata.title != null && !Objects.equals(mediaMetadata.title, "") ? View.VISIBLE : View.GONE);
|
||||||
playerArtistNameLabel.setVisibility(mediaMetadata.artist != null && !Objects.equals(mediaMetadata.artist, "") ? View.VISIBLE : View.GONE);
|
playerArtistNameLabel.setVisibility(
|
||||||
|
(mediaMetadata.artist != null && !Objects.equals(mediaMetadata.artist, ""))
|
||||||
|
|| mediaMetadata.extras != null && Objects.equals(mediaMetadata.extras.getString("type"), Constants.MEDIA_TYPE_RADIO) && mediaMetadata.extras.getString("uri") != null
|
||||||
|
? View.VISIBLE
|
||||||
|
: View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setMediaInfo(MediaMetadata mediaMetadata) {
|
private void setMediaInfo(MediaMetadata mediaMetadata) {
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,6 @@ public class MappingUtil {
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString("id", internetRadioStation.getId());
|
bundle.putString("id", internetRadioStation.getId());
|
||||||
bundle.putString("title", internetRadioStation.getName());
|
bundle.putString("title", internetRadioStation.getName());
|
||||||
bundle.putString("artist", uri.toString());
|
|
||||||
bundle.putString("uri", uri.toString());
|
bundle.putString("uri", uri.toString());
|
||||||
bundle.putString("type", Constants.MEDIA_TYPE_RADIO);
|
bundle.putString("type", Constants.MEDIA_TYPE_RADIO);
|
||||||
|
|
||||||
|
|
@ -149,7 +148,6 @@ public class MappingUtil {
|
||||||
.setMediaMetadata(
|
.setMediaMetadata(
|
||||||
new MediaMetadata.Builder()
|
new MediaMetadata.Builder()
|
||||||
.setTitle(internetRadioStation.getName())
|
.setTitle(internetRadioStation.getName())
|
||||||
.setArtist(internetRadioStation.getStreamUrl())
|
|
||||||
.setExtras(bundle)
|
.setExtras(bundle)
|
||||||
.setIsBrowsable(false)
|
.setIsBrowsable(false)
|
||||||
.setIsPlayable(true)
|
.setIsPlayable(true)
|
||||||
|
|
|
||||||
|
|
@ -138,10 +138,19 @@ class MediaService : MediaLibraryService() {
|
||||||
controller: ControllerInfo,
|
controller: ControllerInfo,
|
||||||
mediaItems: List<MediaItem>
|
mediaItems: List<MediaItem>
|
||||||
): ListenableFuture<List<MediaItem>> {
|
): ListenableFuture<List<MediaItem>> {
|
||||||
val updatedMediaItems = mediaItems.map {
|
val updatedMediaItems = mediaItems.map { mediaItem ->
|
||||||
it.buildUpon()
|
val mediaMetadata = mediaItem.mediaMetadata
|
||||||
.setUri(it.requestMetadata.mediaUri)
|
|
||||||
.setMediaMetadata(it.mediaMetadata)
|
val newMetadata = mediaMetadata.buildUpon()
|
||||||
|
.setArtist(
|
||||||
|
if (mediaMetadata.artist != null) mediaMetadata.artist
|
||||||
|
else mediaMetadata.extras?.getString("uri") ?: ""
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
mediaItem.buildUpon()
|
||||||
|
.setUri(mediaItem.requestMetadata.mediaUri)
|
||||||
|
.setMediaMetadata(newMetadata)
|
||||||
.setMimeType(MimeTypes.BASE_TYPE_AUDIO)
|
.setMimeType(MimeTypes.BASE_TYPE_AUDIO)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue