diff options
author | Martin Fietz <Martin.Fietz@gmail.com> | 2015-12-13 11:08:57 +0100 |
---|---|---|
committer | Martin Fietz <Martin.Fietz@gmail.com> | 2015-12-13 11:09:10 +0100 |
commit | a4dea4ba249df239ee5f2ce358c2a21e5912155c (patch) | |
tree | 50dde45987e72e3b7a66d80dc8f6c4ad6c0ddd7e /app/src/main | |
parent | 3bb8d9304a60207d05cf398f21cc5ba1cc7f8402 (diff) | |
download | AntennaPod-a4dea4ba249df239ee5f2ce358c2a21e5912155c.zip |
(1) Fix refresh indicator (2) On download event, only refresh items that are affected
Diffstat (limited to 'app/src/main')
3 files changed, 21 insertions, 19 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index 37be8f020..0a0f686ff 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -303,6 +303,7 @@ public class AllEpisodesFragment extends Fragment { View root = inflater.inflate(fragmentResource, container, false); recyclerView = (RecyclerView) root.findViewById(android.R.id.list); + recyclerView.getItemAnimator().setSupportsChangeAnimations(false); layoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(layoutManager); recyclerView.setHasFixedSize(true); @@ -397,14 +398,15 @@ public class AllEpisodesFragment extends Fragment { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; downloaderList = update.downloaders; - if(update.feedIds.length > 0) { - if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()) { + if (isUpdatingFeeds != update.feedIds.length > 0) { getActivity().supportInvalidateOptionsMenu(); - } } - if(update.mediaIds.length > 0) { - if(listAdapter != null) { - listAdapter.notifyDataSetChanged(); + if(listAdapter != null && update.mediaIds.length > 0) { + for(long mediaId : update.mediaIds) { + int pos = FeedItemUtil.indexOfItemWithMediaId(episodes, mediaId); + if(pos >= 0) { + listAdapter.notifyItemChanged(pos); + } } } } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java index 09d2f5676..bcfa254f7 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -9,7 +9,6 @@ import android.graphics.Color; import android.graphics.LightingColorFilter; import android.os.Build; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.support.v4.app.ListFragment; import android.support.v4.util.Pair; import android.support.v4.view.MenuItemCompat; @@ -417,13 +416,11 @@ public class ItemlistFragment extends ListFragment { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; downloaderList = update.downloaders; - if(update.feedIds.length > 0) { + if (isUpdatingFeed != event.update.feedIds.length > 0) { updateProgressBarVisibility(); } - if(update.mediaIds.length > 0) { - if (adapter != null) { - adapter.notifyDataSetChanged(); - } + if(adapter != null && update.mediaIds.length > 0) { + adapter.notifyDataSetChanged(); } } 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 46bbfd13c..8a2249d98 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -179,13 +179,15 @@ public class QueueFragment extends Fragment { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; downloaderList = update.downloaders; - if (update.feedIds.length > 0) { - if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()) { - getActivity().supportInvalidateOptionsMenu(); - } - } else if (update.mediaIds.length > 0) { - if (recyclerAdapter != null) { - recyclerAdapter.notifyDataSetChanged(); + if (isUpdatingFeeds != update.feedIds.length > 0) { + getActivity().supportInvalidateOptionsMenu(); + } + if (recyclerAdapter != null && update.mediaIds.length > 0) { + for (long mediaId : update.mediaIds) { + int pos = FeedItemUtil.indexOfItemWithMediaId(queue, mediaId); + if (pos >= 0) { + recyclerAdapter.notifyItemChanged(pos); + } } } } @@ -363,6 +365,7 @@ public class QueueFragment extends Fragment { View root = inflater.inflate(R.layout.queue_fragment, container, false); infoBar = (TextView) root.findViewById(R.id.info_bar); recyclerView = (RecyclerView) root.findViewById(R.id.recyclerView); + recyclerView.getItemAnimator().setSupportsChangeAnimations(false); layoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(layoutManager); recyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(getActivity()).build()); |