diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-03-10 16:35:11 -0500 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-03-10 16:35:11 -0500 |
commit | cac56677444b22677ab4774080cc0ffd12021b90 (patch) | |
tree | 81360dc1cc48029dfb0f0a971a463fe5e84ca578 | |
parent | 77b3dfca78970486b1c8ba806b79fb3754fc7e85 (diff) | |
parent | 09b83a4a02d0ed8bc55f6522d56057ea0fbaa10e (diff) | |
download | AntennaPod-cac56677444b22677ab4774080cc0ffd12021b90.zip |
Merge pull request #1753 from mfietz/issue/simpleanimator_npe
Fix RecyclerView reorder crash
5 files changed, 11 insertions, 2 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java index 6d4fc6f1e..07f895468 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java @@ -202,7 +202,8 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR @Override public long getItemId(int position) { - return position; + FeedItem item = itemAccess.getItem(position); + return item != null ? item.getId() : RecyclerView.NO_POSITION; } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java index aa3368258..6cf61f90b 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java @@ -109,6 +109,12 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap return selectedItem; } + @Override + public long getItemId(int position) { + FeedItem item = itemAccess.getItem(position); + return item != null ? item.getId() : RecyclerView.NO_POSITION; + } + public int getItemCount() { return itemAccess.getCount(); } 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 273c75240..aa2879330 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -337,6 +337,7 @@ public class AllEpisodesFragment extends Fragment { MainActivity mainActivity = activity.get(); listAdapter = new AllEpisodesRecycleAdapter(mainActivity, itemAccess, new DefaultActionButtonCallback(mainActivity), showOnlyNewEpisodes()); + listAdapter.setHasStableIds(true); recyclerView.setAdapter(listAdapter); } listAdapter.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 b3f6c3534..e5bb1d895 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -474,6 +474,7 @@ public class QueueFragment extends Fragment { MainActivity activity = (MainActivity) getActivity(); recyclerAdapter = new QueueRecyclerAdapter(activity, itemAccess, new DefaultActionButtonCallback(activity), itemTouchHelper); + recyclerAdapter.setHasStableIds(true); recyclerView.setAdapter(recyclerAdapter); } if(queue == null || queue.size() == 0) { diff --git a/app/src/main/res/layout/queue_fragment.xml b/app/src/main/res/layout/queue_fragment.xml index 901ac49fc..71bf16d30 100644 --- a/app/src/main/res/layout/queue_fragment.xml +++ b/app/src/main/res/layout/queue_fragment.xml @@ -23,7 +23,7 @@ <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:layout_below="@id/divider" android:scrollbars="vertical"/> |