@Override public void onFingerMove(int x, int y) { final SelectionCursor.Which cursor = getSelectionCursorInMovement(); if (cursor != null) { moveSelectionCursorTo(cursor, x, y); return; } synchronized (this) { if (myIsBrightnessAdjustmentInProgress) { if (x >= getContextWidth() / 5) { myIsBrightnessAdjustmentInProgress = false; startManualScrolling(x, y); } else { final int delta = (myStartBrightness + 30) * (myStartY - y) / getContextHeight(); myReader.getViewWidget().setScreenBrightness(myStartBrightness + delta); return; } } if (isFlickScrollingEnabled()) { myReader.getViewWidget().scrollManuallyTo(x, y); } } }
@Override public void onFingerMoveAfterLongPress(int x, int y) { final SelectionCursor.Which cursor = getSelectionCursorInMovement(); if (cursor != null) { moveSelectionCursorTo(cursor, x, y); return; } ZLTextRegion region = getOutlinedRegion(); if (region != null) { ZLTextRegion.Soul soul = region.getSoul(); if (soul instanceof ZLTextHyperlinkRegionSoul || soul instanceof ZLTextWordRegionSoul) { if (myReader.MiscOptions.WordTappingAction.getValue() != MiscOptions.WordTappingActionEnum.doNothing) { region = findRegion(x, y, maxSelectionDistance(), ZLTextRegion.AnyRegionFilter); if (region != null) { soul = region.getSoul(); if (soul instanceof ZLTextHyperlinkRegionSoul || soul instanceof ZLTextWordRegionSoul) { outlineRegion(region); myReader.getViewWidget().reset(); myReader.getViewWidget().repaint(); } } } } } }
private void onPreferencesUpdate(int resultCode) { final FBReaderApp fbReader = (FBReaderApp) FBReaderApp.Instance(); switch (resultCode) { case RESULT_DO_NOTHING: break; case RESULT_REPAINT: { AndroidFontUtil.clearFontCache(); final BookModel model = fbReader.Model; if (model != null) { final Book book = model.Book; if (book != null) { book.reloadInfoFromDatabase(); ZLTextHyphenator.Instance().load(book.getLanguage()); } } fbReader.clearTextCaches(); fbReader.getViewWidget().repaint(); break; } case RESULT_RELOAD_BOOK: fbReader.reloadBook(); break; } }
private void startManualScrolling(int x, int y) { if (!isFlickScrollingEnabled()) { return; } final boolean horizontal = myReader.PageTurningOptions.Horizontal.getValue(); final Direction direction = horizontal ? Direction.rightToLeft : Direction.up; myReader.getViewWidget().startManualScrolling(x, y, direction); }
@Override public void onFingerSingleTap(int x, int y) { final ZLTextRegion hyperlinkRegion = findRegion(x, y, maxSelectionDistance(), ZLTextRegion.HyperlinkFilter); if (hyperlinkRegion != null) { outlineRegion(hyperlinkRegion); myReader.getViewWidget().reset(); myReader.getViewWidget().repaint(); myReader.runAction(ActionCode.PROCESS_HYPERLINK); return; } final ZLTextRegion bookRegion = findRegion(x, y, 0, ZLTextRegion.ExtensionFilter); if (bookRegion != null) { myReader.runAction(ActionCode.DISPLAY_BOOK_POPUP, bookRegion); return; } final ZLTextRegion videoRegion = findRegion(x, y, 0, ZLTextRegion.VideoFilter); if (videoRegion != null) { outlineRegion(videoRegion); myReader.getViewWidget().reset(); myReader.getViewWidget().repaint(); myReader.runAction(ActionCode.OPEN_VIDEO, (ZLTextVideoRegionSoul) videoRegion.getSoul()); return; } final ZLTextHighlighting highlighting = findHighlighting(x, y, maxSelectionDistance()); if (highlighting instanceof BookmarkHighlighting) { myReader.runAction( ActionCode.SELECTION_BOOKMARK, ((BookmarkHighlighting) highlighting).Bookmark); return; } if (myReader.isActionEnabled(ActionCode.HIDE_TOAST)) { myReader.runAction(ActionCode.HIDE_TOAST); return; } onFingerSingleTapLastResort(x, y); }
@Override public void onFingerRelease(int x, int y) { final SelectionCursor.Which cursor = getSelectionCursorInMovement(); if (cursor != null) { releaseSelectionCursor(); } else if (myIsBrightnessAdjustmentInProgress) { myIsBrightnessAdjustmentInProgress = false; } else if (isFlickScrollingEnabled()) { myReader .getViewWidget() .startAnimatedScrolling(x, y, myReader.PageTurningOptions.AnimationSpeed.getValue()); } }
@Override public boolean onFingerLongPress(int x, int y) { myReader.runAction(ActionCode.HIDE_TOAST); final ZLTextRegion region = findRegion(x, y, maxSelectionDistance(), ZLTextRegion.AnyRegionFilter); if (region != null) { final ZLTextRegion.Soul soul = region.getSoul(); boolean doSelectRegion = false; if (soul instanceof ZLTextWordRegionSoul) { switch (myReader.MiscOptions.WordTappingAction.getValue()) { case startSelecting: myReader.runAction(ActionCode.SELECTION_HIDE_PANEL); initSelection(x, y); final SelectionCursor.Which cursor = findSelectionCursor(x, y); if (cursor != null) { moveSelectionCursorTo(cursor, x, y); } return true; case selectSingleWord: case openDictionary: doSelectRegion = true; break; } } else if (soul instanceof ZLTextImageRegionSoul) { doSelectRegion = myReader.ImageOptions.TapAction.getValue() != ImageOptions.TapActionEnum.doNothing; } else if (soul instanceof ZLTextHyperlinkRegionSoul) { doSelectRegion = true; } if (doSelectRegion) { outlineRegion(region); myReader.getViewWidget().reset(); myReader.getViewWidget().repaint(); return true; } } return false; }
@Override public void onFingerPress(int x, int y) { myReader.runAction(ActionCode.HIDE_TOAST); final float maxDist = ZLibrary.Instance().getDisplayDPI() / 4; final SelectionCursor.Which cursor = findSelectionCursor(x, y, maxDist * maxDist); if (cursor != null) { myReader.runAction(ActionCode.SELECTION_HIDE_PANEL); moveSelectionCursorTo(cursor, x, y); return; } if (myReader.MiscOptions.AllowScreenBrightnessAdjustment.getValue() && x < getContextWidth() / 10) { myIsBrightnessAdjustmentInProgress = true; myStartY = y; myStartBrightness = myReader.getViewWidget().getScreenBrightness(); return; } startManualScrolling(x, y); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { final FBReaderApp fbreader = (FBReaderApp) FBReaderApp.Instance(); switch (requestCode) { case REPAINT_CODE: { final BookModel model = fbreader.Model; if (model != null) { final Book book = model.Book; if (book != null) { book.reloadInfoFromDatabase(); ZLTextHyphenator.Instance().load(book.getLanguage()); } } fbreader.clearTextCaches(); fbreader.getViewWidget().repaint(); break; } case CANCEL_CODE: fbreader.runCancelAction(resultCode - 1); break; } }