diff options
author | Martin Fietz <Martin.Fietz@gmail.com> | 2015-11-07 01:25:15 +0100 |
---|---|---|
committer | Martin Fietz <Martin.Fietz@gmail.com> | 2015-11-07 01:25:15 +0100 |
commit | 8286a76cdf580f4adc1e536cabd3cb3ce3427f15 (patch) | |
tree | 7e13fddbad9b3606bbc6065a099df10fce7c1cad /app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java | |
parent | 47886205f6dd265f3c212c0fb14a44ba88444e31 (diff) | |
download | AntennaPod-8286a76cdf580f4adc1e536cabd3cb3ce3427f15.zip |
Fancy drag/swipe effect
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java | 38 |
1 files changed, 37 insertions, 1 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 1d04baf7a..b35ff0aa9 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java @@ -5,6 +5,7 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; import android.text.format.DateUtils; import android.util.Log; import android.view.ContextMenu; @@ -24,6 +25,7 @@ import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.GlideDrawableImageViewTarget; import com.joanzapata.iconify.Iconify; +import com.nineoldandroids.view.ViewHelper; import java.lang.ref.WeakReference; @@ -250,7 +252,9 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR }; public class Holder extends RecyclerView.ViewHolder - implements View.OnClickListener, View.OnCreateContextMenuListener { + implements View.OnClickListener, + View.OnCreateContextMenuListener, + ItemTouchHelperViewHolder { TextView placeholder; TextView title; TextView pubDate; @@ -278,6 +282,16 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR } } + @Override + public void onItemSelected() { + ViewHelper.setAlpha(itemView, 0.5f); + } + + @Override + public void onItemClear() { + ViewHelper.setAlpha(itemView, 1.0f); + } + public FeedItem getFeedItem() { return item; } @Override @@ -317,4 +331,26 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR boolean isInQueue(FeedItem item); } + + /** + * Notifies a View Holder of relevant callbacks from + * {@link ItemTouchHelper.Callback}. + */ + public interface ItemTouchHelperViewHolder { + + /** + * Called when the {@link ItemTouchHelper} first registers an + * item as being moved or swiped. + * Implementations should update the item view to indicate + * it's active state. + */ + void onItemSelected(); + + + /** + * Called when the {@link ItemTouchHelper} has completed the + * move or swipe, and the active item state should be cleared. + */ + void onItemClear(); + } } |