1 package net.ktnx.mobileledger;
3 import android.content.Context;
4 import android.support.annotation.NonNull;
5 import android.support.v7.widget.RecyclerView;
6 import android.support.v7.widget.RecyclerView.OnItemTouchListener;
7 import android.view.GestureDetector;
8 import android.view.MotionEvent;
9 import android.view.View;
11 class RecyclerItemListener implements OnItemTouchListener {
12 private RecyclerTouchListener listener;
13 private GestureDetector gd;
15 interface RecyclerTouchListener {
16 void onClickItem(View v, int position);
17 void onLongClickItem(View v, int position);
20 public RecyclerItemListener(Context ctx, RecyclerView rv, RecyclerTouchListener listener) {
21 this.listener = listener;
22 this.gd = new GestureDetector(
23 ctx, new GestureDetector.SimpleOnGestureListener() {
25 public void onLongPress(MotionEvent e) {
26 View v = rv.findChildViewUnder(e.getX(), e.getY());
27 listener.onLongClickItem(v, rv.getChildAdapterPosition(v));
31 public boolean onSingleTapUp(MotionEvent e) {
32 View v = rv.findChildViewUnder(e.getX(), e.getY());
33 listener.onClickItem(v, rv.getChildAdapterPosition(v));
41 public boolean onInterceptTouchEvent(@NonNull RecyclerView recyclerView,
42 @NonNull MotionEvent motionEvent) {
43 View v = recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY());
44 return (v != null) && gd.onTouchEvent(motionEvent);
48 public void onTouchEvent(@NonNull RecyclerView recyclerView, @NonNull MotionEvent motionEvent) {
53 public void onRequestDisallowInterceptTouchEvent(boolean b) {