Ejemplo n.º 1
0
  @Override
  protected void run(Object... params) {
    final ZLTextRegion region = Reader.getTextView().getSelectedRegion();
    if (region == null) {
      return;
    }

    final ZLTextRegion.Soul soul = region.getSoul();
    if (soul instanceof ZLTextHyperlinkRegionSoul) {
      Reader.getTextView().hideSelectedRegionBorder();
      Reader.getViewWidget().repaint();
      final ZLTextHyperlink hyperlink = ((ZLTextHyperlinkRegionSoul) soul).Hyperlink;
      switch (hyperlink.Type) {
        case FBHyperlinkType.EXTERNAL:
          openInBrowser(hyperlink.Id);
          break;
        case FBHyperlinkType.INTERNAL:
          Reader.Model.Book.markHyperlinkAsVisited(hyperlink.Id);
          Reader.tryOpenFootnote(hyperlink.Id);
          break;
      }
    } else if (soul instanceof ZLTextImageRegionSoul) {
      Reader.getTextView().hideSelectedRegionBorder();
      Reader.getViewWidget().repaint();
      final String uriString = ((ZLTextImageRegionSoul) soul).ImageElement.URI;
      if (uriString != null) {
        try {
          final Intent intent = new Intent();
          intent.setClass(BaseActivity, ImageViewActivity.class);
          intent.setData(Uri.parse(uriString));
          intent.putExtra(
              ImageViewActivity.BACKGROUND_COLOR_KEY,
              Reader.ImageViewBackgroundOption.getValue().getIntValue());
          BaseActivity.startActivity(intent);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    } else if (soul instanceof ZLTextWordRegionSoul) {
      DictionaryUtil.openWordInDictionary(BaseActivity, ((ZLTextWordRegionSoul) soul).Word, region);
    }
  }