From 62722b25045c20ad6a7e97595a508fb1dee8d93d Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 12 Nov 2019 12:25:23 +0100 Subject: Fixed position sometimes updated in wrong item --- .../java/de/danoeh/antennapod/fragment/EpisodesListFragment.java | 9 ++++++++- .../main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java index 3802e1f65..fe48de815 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java @@ -383,7 +383,14 @@ public abstract class EpisodesListFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(PlaybackPositionEvent event) { if (listAdapter != null) { - listAdapter.notifyCurrentlyPlayingItemChanged(event); + for (int i = 0; i < listAdapter.getItemCount(); i++) { + AllEpisodesRecycleAdapter.Holder holder = (AllEpisodesRecycleAdapter.Holder) + recyclerView.findViewHolderForAdapterPosition(i); + if (holder != null && holder.isCurrentlyPlayingItem()) { + holder.notifyPlaybackPositionUpdated(event); + break; + } + } } } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index ce1276175..82b388b1b 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -212,7 +212,14 @@ public class QueueFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(PlaybackPositionEvent event) { if (recyclerAdapter != null) { - recyclerAdapter.notifyCurrentlyPlayingItemChanged(event); + for (int i = 0; i < recyclerAdapter.getItemCount(); i++) { + QueueRecyclerAdapter.ViewHolder holder = (QueueRecyclerAdapter.ViewHolder) + recyclerView.findViewHolderForAdapterPosition(i); + if (holder != null && holder.isCurrentlyPlayingItem()) { + holder.notifyPlaybackPositionUpdated(event); + break; + } + } } } -- cgit v1.2.3