diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-11-12 17:45:24 -0500 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-11-12 17:45:24 -0500 |
commit | fc1ac0c175a4085c3d0ba144ad17e3adbb3e2ea1 (patch) | |
tree | 9da9420b145a26cd06659ae9ed6bc0c98aa00b2d /app/src/main | |
parent | 63020ec4ce095a056c17eb68b615da31d847d4a2 (diff) | |
parent | 098d82da0503dedf7f2bd4b31cbc1e7ecce3d653 (diff) | |
download | AntennaPod-fc1ac0c175a4085c3d0ba144ad17e3adbb3e2ea1.zip |
Merge pull request #1377 from mfietz/issue/1375-queue-duplicates
Fix queue ordering/duplicate issues
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java | 14 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 10 |
2 files changed, 12 insertions, 12 deletions
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 062f883bc..8593e0dde 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java @@ -2,6 +2,7 @@ package de.danoeh.antennapod.adapter; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.support.annotation.Nullable; import android.support.v4.view.MotionEventCompat; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; @@ -59,7 +60,7 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap private boolean locked; - private int position = -1; + private FeedItem selectedItem; public QueueRecyclerAdapter(MainActivity mainActivity, ItemAccess itemAccess, @@ -88,17 +89,18 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap FeedItem item = itemAccess.getItem(pos); holder.bind(item); holder.itemView.setOnLongClickListener(v -> { - position = pos; + selectedItem = item; return false; }); } - public int getItemCount() { - return itemAccess.getCount(); + @Nullable + public FeedItem getSelectedItem() { + return selectedItem; } - public int getPosition() { - return position; + public int getItemCount() { + return itemAccess.getCount(); } public class ViewHolder extends RecyclerView.ViewHolder 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 3c3f7f01c..610490298 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -165,7 +165,7 @@ public class QueueFragment extends Fragment { case MOVED: int from = FeedItemUtil.indexOfItemWithId(queue, event.item.getId()); int to = event.position; - Collections.swap(queue, from, to); + queue.add(to, queue.remove(from)); recyclerAdapter.notifyItemMoved(from, to); break; } @@ -327,11 +327,9 @@ public class QueueFragment extends Fragment { if(!isVisible()) { return false; } - int pos = recyclerAdapter.getPosition(); - FeedItem selectedItem = itemAccess.getItem(pos); - + FeedItem selectedItem = recyclerAdapter.getSelectedItem(); if (selectedItem == null) { - Log.i(TAG, "Selected item at position " + pos + " was null, ignoring selection"); + Log.i(TAG, "Selected item was null, ignoring selection"); return super.onContextItemSelected(item); } @@ -367,7 +365,7 @@ public class QueueFragment extends Fragment { int from = viewHolder.getAdapterPosition(); int to = target.getAdapterPosition(); Log.d(TAG, "move(" + from + ", " + to + ")"); - Collections.swap(queue, from, to); + queue.add(to, queue.remove(from)); recyclerAdapter.notifyItemMoved(from, to); DBWriter.moveQueueItem(from, to, false); return true; |