feat: Replace play/pause button with an icon, allow tapping on full item to play/pause song in Queue

This commit is contained in:
Jaime García 2025-09-23 17:06:51 +02:00
parent 2e29e9537a
commit 14939d20fd
No known key found for this signature in database
GPG key ID: BC4E5F71A71BDA5B
2 changed files with 14 additions and 24 deletions

View file

@ -112,7 +112,7 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
} else {
holder.item.ratingIndicatorImageView.setVisibility(View.GONE);
}
holder.item.playPauseButton.setOnClickListener(v -> {
holder.itemView.setOnClickListener(v -> {
mediaBrowserListenableFuture.addListener(() -> {
try {
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
@ -138,23 +138,19 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
}
private void bindPlaybackState(@NonNull PlayerSongQueueAdapter.ViewHolder holder, @NonNull Child song) {
boolean isCurrent = currentPlayingId != null && currentPlayingId.equals(song.getId()) && isPlaying;
boolean isCurrent = currentPlayingId != null && currentPlayingId.equals(song.getId());
if (isCurrent) {
holder.item.playPauseButton.setVisibility(View.VISIBLE);
holder.item.playPauseButton.setChecked(true);
holder.item.playPauseIcon.setVisibility(View.VISIBLE);
if (isPlaying) {
holder.item.playPauseIcon.setImageResource(R.drawable.ic_pause);
} else {
holder.item.playPauseIcon.setImageResource(R.drawable.ic_play);
}
holder.item.coverArtOverlay.setVisibility(View.VISIBLE);
} else {
boolean sameIdPaused = currentPlayingId != null && currentPlayingId.equals(song.getId()) && !isPlaying;
if (sameIdPaused) {
holder.item.playPauseButton.setVisibility(View.VISIBLE);
holder.item.playPauseButton.setChecked(false);
holder.item.coverArtOverlay.setVisibility(View.VISIBLE);
} else {
holder.item.playPauseButton.setVisibility(View.GONE);
holder.item.playPauseButton.setChecked(false);
holder.item.coverArtOverlay.setVisibility(View.INVISIBLE);
}
holder.item.playPauseIcon.setVisibility(View.GONE);
holder.item.coverArtOverlay.setVisibility(View.INVISIBLE);
}
}