diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java index f6b47d8e5..0ad7fa219 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java @@ -1,9 +1,12 @@ package de.danoeh.antennapod.adapter; import android.app.Activity; +import android.os.Build; import android.view.ContextMenu; +import android.view.InputDevice; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -85,6 +88,17 @@ public class EpisodeItemListAdapter extends SelectableAdapter { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (e.isFromSource(InputDevice.SOURCE_MOUSE) + && e.getButtonState() == MotionEvent.BUTTON_SECONDARY) { + longPressedItem = getItem(holder.getBindingAdapterPosition()); + longPressedPosition = holder.getBindingAdapterPosition(); + return false; + } + } + return false; + }); if (inActionMode()) { holder.secondaryActionButton.setVisibility(View.GONE); @@ -162,6 +176,9 @@ public class EpisodeItemListAdapter extends SelectableAdapter holder.itemView.setOnClickListener(v -> itemAccess.onItemClick(position)); holder.itemView.setOnLongClickListener(v -> itemAccess.onItemLongClick(position)); + holder.itemView.setOnTouchListener((v, e) -> { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (e.isFromSource(InputDevice.SOURCE_MOUSE) + && e.getButtonState() == MotionEvent.BUTTON_SECONDARY) { + itemAccess.onItemLongClick(position); + return false; + } + } + return false; + }); } } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java index 21c5e1897..5ab354d05 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java @@ -4,11 +4,14 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Build; import android.text.TextUtils; import android.view.ContextMenu; +import android.view.InputDevice; import android.view.LayoutInflater; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; @@ -120,6 +123,20 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (e.isFromSource(InputDevice.SOURCE_MOUSE) + && e.getButtonState() == MotionEvent.BUTTON_SECONDARY) { + if (!inActionMode()) { + if (isFeed) { + longPressedPosition = holder.getBindingAdapterPosition(); + } + selectedItem = (NavDrawerData.DrawerItem) getItem(holder.getBindingAdapterPosition()); + } + } + } + return false; + }); holder.itemView.setOnClickListener(v -> { if (isFeed) { if (inActionMode()) {