1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 10:19:33 +02:00

code simplification

This commit is contained in:
Nikolay Pultsin 2011-04-13 03:51:45 +01:00
parent faf3a1a8d5
commit 3495a3a7da
4 changed files with 31 additions and 32 deletions

View file

@ -184,6 +184,7 @@ public final class FBView extends ZLTextView {
private synchronized void runAutoScrolling(int x, int y) { private synchronized void runAutoScrolling(int x, int y) {
final boolean horizontal = ScrollingPreferences.Instance().HorizontalOption.getValue(); final boolean horizontal = ScrollingPreferences.Instance().HorizontalOption.getValue();
final Direction direction = horizontal ? Direction.rightToLeft : Direction.up;
final int diff = horizontal ? x - myStartX : y - myStartY; final int diff = horizontal ? x - myStartX : y - myStartY;
final int h = myContext.getHeight(); final int h = myContext.getHeight();
final int w = myContext.getWidth(); final int w = myContext.getWidth();
@ -194,7 +195,7 @@ public final class FBView extends ZLTextView {
Math.abs(diff) < minDiff Math.abs(diff) < minDiff
? PageIndex.current ? PageIndex.current
: (diff < 0 ? PageIndex.next : PageIndex.previous); : (diff < 0 ? PageIndex.next : PageIndex.previous);
myReader.startViewAutoScrolling(pageIndex, horizontal ? Direction.rightToLeft : Direction.up, ScrollingPreferences.Instance().AnimationSpeedOption.getValue()); myReader.startViewAutoScrolling(pageIndex, direction, x, y, ScrollingPreferences.Instance().AnimationSpeedOption.getValue());
} }
public boolean onFingerRelease(int x, int y) { public boolean onFingerRelease(int x, int y) {

View file

@ -121,6 +121,5 @@ abstract public class ZLView {
public abstract int getScrollbarThumbPosition(PageIndex pageIndex); public abstract int getScrollbarThumbPosition(PageIndex pageIndex);
public abstract int getScrollbarThumbLength(PageIndex pageIndex); public abstract int getScrollbarThumbLength(PageIndex pageIndex);
public abstract boolean canScrollForward(); public abstract boolean canScroll(PageIndex index);
public abstract boolean canScrollBackward();
} }

View file

@ -1436,20 +1436,26 @@ public abstract class ZLTextView extends ZLTextViewBase {
} }
@Override @Override
public boolean canScrollForward() { public boolean canScroll(PageIndex index) {
final ZLTextWordCursor cursor = getEndCursor(); switch (index) {
return default:
cursor != null && return true;
!cursor.isNull() && case next:
(!cursor.isEndOfParagraph() || !cursor.getParagraphCursor().isLast()); {
} final ZLTextWordCursor cursor = getEndCursor();
return
@Override cursor != null &&
public boolean canScrollBackward() { !cursor.isNull() &&
final ZLTextWordCursor cursor = getStartCursor(); (!cursor.isEndOfParagraph() || !cursor.getParagraphCursor().isLast());
return }
cursor != null && case previous:
!cursor.isNull() && {
(!cursor.isStartOfParagraph() || !cursor.getParagraphCursor().isFirst()); final ZLTextWordCursor cursor = getStartCursor();
return
cursor != null &&
!cursor.isNull() &&
(!cursor.isStartOfParagraph() || !cursor.getParagraphCursor().isFirst());
}
}
} }
} }

View file

@ -155,14 +155,8 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
public void scrollManually(int startX, int startY, int endX, int endY, ZLView.Direction direction) { public void scrollManually(int startX, int startY, int endX, int endY, ZLView.Direction direction) {
final ZLView view = ZLApplication.Instance().getCurrentView(); final ZLView view = ZLApplication.Instance().getCurrentView();
final int diff = direction.IsHorizontal ? endX - startX : endY - startY; final int diff = direction.IsHorizontal ? endX - startX : endY - startY;
if (diff >= 0) { if (!view.canScroll(diff >= 0 ? ZLView.PageIndex.previous : ZLView.PageIndex.next)) {
if (!view.canScrollBackward()) { return;
return;
}
} else {
if (!view.canScrollForward()) {
return;
}
} }
final AnimationProvider animator = getAnimationProvider(); final AnimationProvider animator = getAnimationProvider();
@ -182,6 +176,11 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
final AnimationProvider animator = getAnimationProvider(); final AnimationProvider animator = getAnimationProvider();
final int w = getWidth(); final int w = getWidth();
final int h = getMainAreaHeight(); final int h = getMainAreaHeight();
if (!view.canScroll(pageIndex)) {
return;
}
switch (pageIndex) { switch (pageIndex) {
case current: case current:
switch (animator.getPageToScrollTo()) { switch (animator.getPageToScrollTo()) {
@ -197,15 +196,9 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
} }
break; break;
case previous: case previous:
if (!view.canScrollBackward()) {
return;
}
animator.startAutoScrolling(true, 3, direction, w, h, x, y, speed); animator.startAutoScrolling(true, 3, direction, w, h, x, y, speed);
break; break;
case next: case next:
if (!view.canScrollForward()) {
return;
}
animator.startAutoScrolling(true, -3, direction, w, h, x, y, speed); animator.startAutoScrolling(true, -3, direction, w, h, x, y, speed);
break; break;
} }