From b0b95f0a05c216e8af62b21433658e2cc0c55441 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 30 Sep 2022 17:46:13 +0200 Subject: Reorder queue section when pressing play, not when pausing --- .../de/danoeh/antennapod/ui/home/sections/QueueSection.java | 12 +++++++++++- .../antennapod/view/viewholder/HorizontalItemViewHolder.java | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/de/danoeh/antennapod/ui/home/sections/QueueSection.java b/app/src/main/java/de/danoeh/antennapod/ui/home/sections/QueueSection.java index efff7927e..57fc85192 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/home/sections/QueueSection.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/home/sections/QueueSection.java @@ -113,14 +113,24 @@ public class QueueSection extends HomeSection { if (listAdapter == null) { return; } + boolean foundCurrentlyPlayingItem = false; + boolean currentlyPlayingItemIsFirst = true; for (int i = 0; i < listAdapter.getItemCount(); i++) { HorizontalItemViewHolder holder = (HorizontalItemViewHolder) viewBinding.recyclerView.findViewHolderForAdapterPosition(i); - if (holder != null && holder.isCurrentlyPlayingItem()) { + if (holder == null) { + continue; + } + if (holder.isCurrentlyPlayingItem()) { holder.notifyPlaybackPositionUpdated(event); + foundCurrentlyPlayingItem = true; + currentlyPlayingItemIsFirst = (i == 0); break; } } + if (!foundCurrentlyPlayingItem || !currentlyPlayingItemIsFirst) { + loadItems(); + } } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java index 9723417ce..f2d8e628c 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java +++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java @@ -96,7 +96,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder { } public boolean isCurrentlyPlayingItem() { - return item.getMedia() != null && FeedItemUtil.isCurrentlyPlaying(item.getMedia()); + return item != null && item.getMedia() != null && FeedItemUtil.isCurrentlyPlaying(item.getMedia()); } public void notifyPlaybackPositionUpdated(PlaybackPositionEvent event) { -- cgit v1.2.3