Skip to content

Commit 67e43fe

Browse files
author
Ben Sandee
committed
add support for long press listener on PhotoAttacher
Merge branch 'master' into dev Conflicts: library/src/uk/co/senab/photoview/PhotoViewAttacher.java
2 parents fbe7598 + e3c4707 commit 67e43fe

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

library/src/uk/co/senab/photoview/PhotoViewAttacher.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import android.view.MotionEvent;
2929
import android.view.View;
3030
import android.view.ViewTreeObserver;
31+
import android.view.View.OnLongClickListener;
3132
import android.widget.ImageView;
3233
import android.widget.ImageView.ScaleType;
3334

@@ -105,6 +106,7 @@ private static void setImageViewScaleTypeMatrix(ImageView imageView) {
105106
private OnMatrixChangedListener mMatrixChangeListener;
106107
private OnPhotoTapListener mPhotoTapListener;
107108
private OnViewTapListener mViewTapListener;
109+
private OnLongClickListener mLongClickListener;
108110

109111
private int mIvTop, mIvRight, mIvBottom, mIvLeft;
110112
private FlingRunnable mCurrentFlingRunnable;
@@ -129,7 +131,17 @@ public PhotoViewAttacher(ImageView imageView) {
129131
mScaleDragDetector = VersionedGestureDetector.newInstance(imageView.getContext(), this);
130132

131133
mGestureDetector = new GestureDetector(imageView.getContext(),
132-
new GestureDetector.SimpleOnGestureListener());
134+
new GestureDetector.SimpleOnGestureListener() {
135+
136+
// forward long click listener
137+
@Override
138+
public void onLongPress(MotionEvent e) {
139+
super.onLongPress(e);
140+
141+
if(mLongClickListener != null) {
142+
mLongClickListener.onLongClick(mImageView.get());
143+
}
144+
}});
133145
mGestureDetector.setOnDoubleTapListener(this);
134146

135147
// Finally, update the UI so that we're zoomable
@@ -395,6 +407,16 @@ public final boolean onTouch(View v, MotionEvent ev) {
395407
return handled;
396408
}
397409

410+
/**
411+
* Register a callback to be invoked when the Photo displayed by this view is long-pressed.
412+
*
413+
* @param listener
414+
* - Listener to be registered.
415+
*/
416+
public final void setOnLongClickListener(OnLongClickListener listener) {
417+
mLongClickListener = listener;
418+
}
419+
398420
/**
399421
* Register a callback to be invoked when the Matrix has changed for this
400422
* View. An example would be the user panning or scaling the Photo.

0 commit comments

Comments
 (0)