diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java | 10 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java | 43 |
2 files changed, 35 insertions, 18 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 36db8978f..2dfa7d369 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java @@ -79,7 +79,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR .findViewById(R.id.pbar_progress); holder.cover = (ImageView) view.findViewById(R.id.imgvCover); holder.txtvDuration = (TextView) view.findViewById(R.id.txtvDuration); - holder.itemId = 0; + holder.item = null; holder.mainActivity = mainActivity; return holder; @@ -89,7 +89,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR public void onBindViewHolder(final Holder holder, int position) { final FeedItem item = itemAccess.getItem(position); if (item == null) return; - holder.itemId = item.getId(); + holder.item = item; holder.placeholder.setVisibility(View.VISIBLE); holder.placeholder.setText(item.getFeed().getTitle()); holder.title.setText(item.getTitle()); @@ -239,7 +239,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR ProgressBar progress; TextView txtvDuration; ImageButton butSecondary; - long itemId; + FeedItem item; MainActivity mainActivity; public Holder(View itemView) { @@ -251,9 +251,11 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR @Override public void onClick(View v) { if (mainActivity != null) { - mainActivity.loadChildFragment(ItemFragment.newInstance(itemId)); + mainActivity.loadChildFragment(ItemFragment.newInstance(item.getId())); } } + + public FeedItem getFeedItem() { return item; } } public interface ItemAccess { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java index 27fbbacf8..754899486 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java @@ -3,6 +3,8 @@ package de.danoeh.antennapod.fragment; import android.content.Context; import android.os.Bundle; import android.support.v4.util.Pair; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -11,6 +13,7 @@ import android.view.ViewGroup; import java.util.List; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.adapter.AllEpisodesRecycleAdapter; import de.danoeh.antennapod.core.event.FavoritesEvent; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.storage.DBReader; @@ -66,24 +69,36 @@ public class FavoriteEpisodesFragment extends AllEpisodesFragment { View root = super.onCreateViewHelper(inflater, container, savedInstanceState, R.layout.episodes_fragment_with_undo); - /** TODO! - listView.setRemoveListener(which -> { - Log.d(TAG, "remove(" + which + ")"); - if (subscription != null) { - subscription.unsubscribe(); + ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + return false; } - FeedItem item = (FeedItem) listView.getAdapter().getItem(which); - DBWriter.removeFavoriteItem(item); + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { + AllEpisodesRecycleAdapter.Holder holder = (AllEpisodesRecycleAdapter.Holder)viewHolder; + Log.d(TAG, "remove(" + holder.getItemId() + ")"); - undoBarController.showUndoBar(false, - getString(R.string.removed_item), new FeedItemUndoToken(item, - which) - ); - }); - */ + if (subscription != null) { + subscription.unsubscribe(); + } + FeedItem item = holder.getFeedItem(); + if (item != null) { + DBWriter.removeFavoriteItem(item); + + undoBarController.showUndoBar(false, + getString(R.string.removed_item), new FeedItemUndoToken(item, + 0) + ); + } + } + }; + + ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback); + itemTouchHelper.attachToRecyclerView(listView); - undoBarController = new UndoBarController<FeedItemUndoToken>(root.findViewById(R.id.undobar), new UndoBarController.UndoListener<FeedItemUndoToken>() { + undoBarController = new UndoBarController<>(root.findViewById(R.id.undobar), new UndoBarController.UndoListener<FeedItemUndoToken>() { private final Context context = getActivity(); |