public boolean onSingleTapUp(MotionEvent e) {
    LinkInfo link = null;

    if (mMode == Mode.Viewing && !tapDisabled) {
      MuPDFView pageView = (MuPDFView) getDisplayedView();
      Hit item = pageView.passClickEvent(e.getX(), e.getY());
      onHit(item);
      if (item == Hit.Nothing) {
        if (mLinksEnabled
            && pageView != null
            && (link = pageView.hitLink(e.getX(), e.getY())) != null) {
          link.acceptVisitor(
              new LinkInfoVisitor() {
                @Override
                public void visitInternal(LinkInfoInternal li) {
                  // Clicked on an internal (GoTo) link
                  setDisplayedViewIndex(li.pageNumber);
                }

                @Override
                public void visitExternal(LinkInfoExternal li) {
                  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(li.url));
                  mContext.startActivity(intent);
                }

                @Override
                public void visitRemote(LinkInfoRemote li) {
                  // Clicked on a remote (GoToR) link
                }
              });
        } else if (e.getX() < tapPageMargin) {
          super.smartMoveBackwards();
        } else if (e.getX() > super.getWidth() - tapPageMargin) {
          super.smartMoveForwards();
        } else if (e.getY() < tapPageMargin) {
          super.smartMoveBackwards();
        } else if (e.getY() > super.getHeight() - tapPageMargin) {
          super.smartMoveForwards();
        } else {
          onTapMainDocArea();
        }
      }
    }
    return super.onSingleTapUp(e);
  }