Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c94c034

Browse files
committed
Add tap listener
1 parent 94f7b78 commit c94c034

File tree

3 files changed

+65
-6
lines changed

3 files changed

+65
-6
lines changed

android-pdf-viewer/src/main/java/com/github/barteksc/pdfviewer/DragPinchManager.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.view.View;
2323

2424
import com.github.barteksc.pdfviewer.scroll.ScrollHandle;
25+
import com.github.barteksc.pdfviewer.listener.OnTapListener;
2526

2627
import static com.github.barteksc.pdfviewer.util.Constants.Pinch.MAXIMUM_ZOOM;
2728
import static com.github.barteksc.pdfviewer.util.Constants.Pinch.MINIMUM_ZOOM;
@@ -81,12 +82,15 @@ public void setSwipeVertical(boolean swipeVertical) {
8182

8283
@Override
8384
public boolean onSingleTapConfirmed(MotionEvent e) {
84-
ScrollHandle ps = pdfView.getScrollHandle();
85-
if (ps != null && !pdfView.documentFitsView()) {
86-
if (!ps.shown()) {
87-
ps.show();
88-
} else {
89-
ps.hide();
85+
OnTapListener onTapListener = pdfView.getOnTapListener();
86+
if (onTapListener != null && !onTapListener.onTap(e)) {
87+
ScrollHandle ps = pdfView.getScrollHandle();
88+
if (ps != null && !pdfView.documentFitsView()) {
89+
if (!ps.shown()) {
90+
ps.show();
91+
} else {
92+
ps.hide();
93+
}
9094
}
9195
}
9296
pdfView.performClick();

android-pdf-viewer/src/main/java/com/github/barteksc/pdfviewer/PDFView.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.github.barteksc.pdfviewer.listener.OnPageChangeListener;
4040
import com.github.barteksc.pdfviewer.listener.OnPageScrollListener;
4141
import com.github.barteksc.pdfviewer.listener.OnRenderListener;
42+
import com.github.barteksc.pdfviewer.listener.OnTapListener;
4243
import com.github.barteksc.pdfviewer.model.PagePart;
4344
import com.github.barteksc.pdfviewer.scroll.ScrollHandle;
4445
import com.github.barteksc.pdfviewer.source.AssetSource;
@@ -232,6 +233,11 @@ enum ScrollDir {
232233
*/
233234
private OnRenderListener onRenderListener;
234235

236+
/**
237+
* Call back object to call when the user does a tap gesture
238+
*/
239+
private OnTapListener onTapListener;
240+
235241
/**
236242
* Paint object for drawing
237243
*/
@@ -505,6 +511,14 @@ OnRenderListener getOnRenderListener() {
505511
return this.onRenderListener;
506512
}
507513

514+
private void setOnTapListener(OnTapListener onTapListener) {
515+
this.onTapListener = onTapListener;
516+
}
517+
518+
OnTapListener getOnTapListener() {
519+
return this.onTapListener;
520+
}
521+
508522
private void setOnDrawListener(OnDrawListener onDrawListener) {
509523
this.onDrawListener = onDrawListener;
510524
}
@@ -1343,6 +1357,8 @@ public class Configurator {
13431357

13441358
private OnRenderListener onRenderListener;
13451359

1360+
private OnTapListener onTapListener;
1361+
13461362
private int defaultPage = 0;
13471363

13481364
private boolean swipeHorizontal = false;
@@ -1416,6 +1432,11 @@ public Configurator onRender(OnRenderListener onRenderListener) {
14161432
return this;
14171433
}
14181434

1435+
public Configurator onTap(OnTapListener onTapListener) {
1436+
this.onTapListener = onTapListener;
1437+
return this;
1438+
}
1439+
14191440
public Configurator defaultPage(int defaultPage) {
14201441
this.defaultPage = defaultPage;
14211442
return this;
@@ -1453,6 +1474,7 @@ public void load() {
14531474
PDFView.this.setOnPageChangeListener(onPageChangeListener);
14541475
PDFView.this.setOnPageScrollListener(onPageScrollListener);
14551476
PDFView.this.setOnRenderListener(onRenderListener);
1477+
PDFView.this.setOnTapListener(onTapListener);
14561478
PDFView.this.enableSwipe(enableSwipe);
14571479
PDFView.this.enableDoubletap(enableDoubletap);
14581480
PDFView.this.setDefaultPage(defaultPage);
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Copyright 2017 Bartosz Schiller
3+
* <p>
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
* <p>
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
* <p>
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package com.github.barteksc.pdfviewer.listener;
17+
18+
import android.view.MotionEvent;
19+
20+
/**
21+
* Implements this interface to receive events from PDFView
22+
* when a page has been scrolled
23+
*/
24+
public interface OnTapListener {
25+
26+
/**
27+
* Called when the user has a tap gesture, before processing scroll toggling.
28+
*
29+
* @param e MotionEvent that registered as a confirmed single tap
30+
* @return true if the single tap was handled
31+
*/
32+
boolean onTap(MotionEvent e);
33+
}

0 commit comments

Comments
 (0)