From cc8c0b60435d75f034633791acdd45d3200b3489 Mon Sep 17 00:00:00 2001 From: Anonymous Raccoon <32224410+AnonymusRaccoon@users.noreply.github.com> Date: Mon, 21 May 2018 13:53:12 +0200 Subject: [PATCH] Solving queue bug. --- .../Resources/Portable Class/MusicPlayer.cs | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/MusicApp/Resources/Portable Class/MusicPlayer.cs b/MusicApp/Resources/Portable Class/MusicPlayer.cs index b514e57..d326800 100644 --- a/MusicApp/Resources/Portable Class/MusicPlayer.cs +++ b/MusicApp/Resources/Portable Class/MusicPlayer.cs @@ -471,9 +471,15 @@ namespace MusicApp.Resources.Portable_Class song.isParsed = true; if (Queue.instance != null) { - ImageView youtubeIcon = Queue.instance.ListView.GetChildAt(queue.IndexOf(song) - ((LinearLayoutManager)Queue.instance.ListView.GetLayoutManager()).FindFirstVisibleItemPosition()).FindViewById(Resource.Id.youtubeIcon); - youtubeIcon.SetImageResource(Resource.Drawable.youtubeIcon); - youtubeIcon.ClearColorFilter(); + int item = queue.IndexOf(song); + int firstItem = ((LinearLayoutManager)Queue.instance.ListView.GetLayoutManager()).FindFirstVisibleItemPosition(); + int lastItem = ((LinearLayoutManager)Queue.instance.ListView.GetLayoutManager()).FindLastVisibleItemPosition(); + if (firstItem < item && item < lastItem) + { + ImageView youtubeIcon = Queue.instance.ListView.GetChildAt(item - firstItem).FindViewById(Resource.Id.youtubeIcon); + youtubeIcon.SetImageResource(Resource.Drawable.youtubeIcon); + youtubeIcon.ClearColorFilter(); + } } } @@ -551,9 +557,15 @@ namespace MusicApp.Resources.Portable_Class parsing = false; if (Queue.instance != null) { - ImageView youtubeIcon = Queue.instance.ListView.GetChildAt(queue.IndexOf(song) - ((LinearLayoutManager)Queue.instance.ListView.GetLayoutManager()).FindFirstVisibleItemPosition()).FindViewById(Resource.Id.youtubeIcon); - youtubeIcon.SetImageResource(Resource.Drawable.youtubeIcon); - youtubeIcon.ClearColorFilter(); + int item = queue.IndexOf(song); + int firstItem = ((LinearLayoutManager)Queue.instance.ListView.GetLayoutManager()).FindFirstVisibleItemPosition(); + int lastItem = ((LinearLayoutManager)Queue.instance.ListView.GetLayoutManager()).FindLastVisibleItemPosition(); + if(firstItem < item && item < lastItem) + { + ImageView youtubeIcon = Queue.instance.ListView.GetChildAt(item - firstItem).FindViewById(Resource.Id.youtubeIcon); + youtubeIcon.SetImageResource(Resource.Drawable.youtubeIcon); + youtubeIcon.ClearColorFilter(); + } } } }