From f1ee1ee6762f52506b3c2cfd9b86e69a8e592dda Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Fri, 31 Dec 2010 19:34:56 +0000 Subject: [PATCH] getCurrentFilter() method is replaced by a method argument --- .../android/fbreader/FBReader.java | 6 +++--- .../fbreader/ProcessHyperlinkAction.java | 5 ++++- .../fbreader/SwitchTextViewModeAction.java | 6 ------ .../fbreader/fbreader/FBView.java | 21 ++++++++++++------- .../text/view/ZLTextElementRegion.java | 4 ++-- .../text/view/ZLTextHyperlinkRegion.java | 2 +- .../zlibrary/text/view/ZLTextView.java | 17 ++------------- .../zlibrary/text/view/ZLTextViewBase.java | 4 +--- .../zlibrary/text/view/ZLTextViewMode.java | 6 ------ 9 files changed, 27 insertions(+), 44 deletions(-) delete mode 100644 src/org/geometerplus/zlibrary/text/view/ZLTextViewMode.java diff --git a/src/org/geometerplus/android/fbreader/FBReader.java b/src/org/geometerplus/android/fbreader/FBReader.java index ad547107f..db7878ca4 100644 --- a/src/org/geometerplus/android/fbreader/FBReader.java +++ b/src/org/geometerplus/android/fbreader/FBReader.java @@ -36,13 +36,13 @@ import org.geometerplus.zlibrary.core.view.ZLView; import org.geometerplus.zlibrary.text.view.ZLTextFixedPosition; import org.geometerplus.zlibrary.text.view.ZLTextPosition; import org.geometerplus.zlibrary.text.view.ZLTextView; -import org.geometerplus.zlibrary.text.view.ZLTextViewMode; import org.geometerplus.zlibrary.ui.android.R; import org.geometerplus.zlibrary.ui.android.library.ZLAndroidActivity; import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication; import org.geometerplus.fbreader.fbreader.ActionCode; import org.geometerplus.fbreader.fbreader.FBReaderApp; +import org.geometerplus.fbreader.fbreader.FBView; import org.geometerplus.android.fbreader.library.KillerCallback; @@ -137,8 +137,8 @@ public final class FBReader extends ZLAndroidActivity { fbReader.addAction(ActionCode.SEARCH, new SearchAction(this, fbReader)); fbReader.addAction(ActionCode.PROCESS_HYPERLINK, new ProcessHyperlinkAction(this, fbReader)); - fbReader.addAction(ActionCode.SET_TEXT_VIEW_MODE_VISIT_HYPERLINKS, new SwitchTextViewModeAction(this, fbReader, ZLTextViewMode.MODE_VISIT_HYPERLINKS)); - fbReader.addAction(ActionCode.SET_TEXT_VIEW_MODE_VISIT_ALL_WORDS, new SwitchTextViewModeAction(this, fbReader, ZLTextViewMode.MODE_VISIT_ALL_WORDS)); + fbReader.addAction(ActionCode.SET_TEXT_VIEW_MODE_VISIT_HYPERLINKS, new SwitchTextViewModeAction(this, fbReader, FBView.MODE_VISIT_HYPERLINKS)); + fbReader.addAction(ActionCode.SET_TEXT_VIEW_MODE_VISIT_ALL_WORDS, new SwitchTextViewModeAction(this, fbReader, FBView.MODE_VISIT_ALL_WORDS)); } @Override diff --git a/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java b/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java index dddb254de..b50b48b23 100644 --- a/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java +++ b/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java @@ -22,7 +22,7 @@ package org.geometerplus.android.fbreader; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; -import android.widget.Toast; +//import android.widget.Toast; import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.core.network.ZLNetworkException; @@ -80,11 +80,14 @@ class ProcessHyperlinkAction extends FBAction { try { myBaseActivity.startActivity(intent); } catch(ActivityNotFoundException e){ + DictionaryUtil.installDictionaryIfNotInstalled(myBaseActivity); + /* Toast.makeText( myBaseActivity, ZLResource.resource("errorMessage").getResource("dictionaryIsNotInstalled").getValue(), Toast.LENGTH_LONG ).show(); + */ } } } diff --git a/src/org/geometerplus/android/fbreader/SwitchTextViewModeAction.java b/src/org/geometerplus/android/fbreader/SwitchTextViewModeAction.java index 849adfd00..0841e3792 100644 --- a/src/org/geometerplus/android/fbreader/SwitchTextViewModeAction.java +++ b/src/org/geometerplus/android/fbreader/SwitchTextViewModeAction.java @@ -19,8 +19,6 @@ package org.geometerplus.android.fbreader; -import org.geometerplus.zlibrary.text.view.ZLTextViewMode; - import org.geometerplus.fbreader.fbreader.FBAction; import org.geometerplus.fbreader.fbreader.FBReaderApp; @@ -41,10 +39,6 @@ class SwitchTextViewModeAction extends FBAction { @Override public void run() { - if (myMode == ZLTextViewMode.MODE_VISIT_ALL_WORDS) { - DictionaryUtil.installDictionaryIfNotInstalled(myBaseActivity); - } - Reader.TextViewModeOption.setValue(myMode); Reader.BookTextView.resetRegionPointer(); Reader.FootnoteView.resetRegionPointer(); diff --git a/src/org/geometerplus/fbreader/fbreader/FBView.java b/src/org/geometerplus/fbreader/fbreader/FBView.java index 5e9a0b0e3..1f2daf842 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBView.java +++ b/src/org/geometerplus/fbreader/fbreader/FBView.java @@ -94,7 +94,7 @@ public final class FBView extends ZLTextView { } /* - final ZLTextElementRegion region = findRegion(x, y, 10); + final ZLTextElementRegion region = findRegion(x, y, 10, getRegionFilter()); if (region != null) { final int action = myReader.DictionaryModeTappingActionOption.getValue(); @@ -246,7 +246,7 @@ public final class FBView extends ZLTextView { return true; } - final ZLTextElementRegion region = findRegion(x, y, 10); + final ZLTextElementRegion region = findRegion(x, y, 10, getRegionFilter()); if (region != null) { selectRegion(region); myReader.repaintView(); @@ -263,7 +263,7 @@ public final class FBView extends ZLTextView { return true; } - final ZLTextElementRegion region = findRegion(x, y, 10); + final ZLTextElementRegion region = findRegion(x, y, 10, getRegionFilter()); if (region != null) { selectRegion(region); myReader.repaintView(); @@ -280,7 +280,7 @@ public final class FBView extends ZLTextView { (diffY > 0 ? Direction.DOWN : Direction.UP) : (diffX > 0 ? Direction.RIGHT : Direction.LEFT); - if (!moveRegionPointer(direction)) { + if (!moveRegionPointer(direction, getRegionFilter())) { if (direction == Direction.DOWN) { scrollPage(true, ZLTextView.ScrollingMode.SCROLL_LINES, 1); } else if (direction == Direction.UP) { @@ -293,9 +293,16 @@ public final class FBView extends ZLTextView { return true; } - @Override - public int getMode() { - return myReader.TextViewModeOption.getValue(); + public final static int MODE_VISIT_HYPERLINKS = 0; + public final static int MODE_VISIT_ALL_WORDS = 1; + private ZLTextElementRegion.Filter getRegionFilter() { + switch (myReader.TextViewModeOption.getValue()) { + default: + case MODE_VISIT_ALL_WORDS: + return ZLTextElementRegion.Filter; + case MODE_VISIT_HYPERLINKS: + return ZLTextHyperlinkRegion.Filter; + } } @Override diff --git a/src/org/geometerplus/zlibrary/text/view/ZLTextElementRegion.java b/src/org/geometerplus/zlibrary/text/view/ZLTextElementRegion.java index aa752c79b..1b9dbdfde 100644 --- a/src/org/geometerplus/zlibrary/text/view/ZLTextElementRegion.java +++ b/src/org/geometerplus/zlibrary/text/view/ZLTextElementRegion.java @@ -24,11 +24,11 @@ import java.util.*; import org.geometerplus.zlibrary.core.view.ZLPaintContext; public abstract class ZLTextElementRegion { - static interface Filter { + public static interface Filter { boolean accepts(ZLTextElementRegion region); } - static Filter Filter = new Filter() { + public static Filter Filter = new Filter() { public boolean accepts(ZLTextElementRegion region) { return true; } diff --git a/src/org/geometerplus/zlibrary/text/view/ZLTextHyperlinkRegion.java b/src/org/geometerplus/zlibrary/text/view/ZLTextHyperlinkRegion.java index e176c129f..8f6311aae 100644 --- a/src/org/geometerplus/zlibrary/text/view/ZLTextHyperlinkRegion.java +++ b/src/org/geometerplus/zlibrary/text/view/ZLTextHyperlinkRegion.java @@ -22,7 +22,7 @@ package org.geometerplus.zlibrary.text.view; import java.util.List; public class ZLTextHyperlinkRegion extends ZLTextElementRegion { - static Filter Filter = new Filter() { + public static Filter Filter = new Filter() { public boolean accepts(ZLTextElementRegion region) { return region instanceof ZLTextHyperlinkRegion; } diff --git a/src/org/geometerplus/zlibrary/text/view/ZLTextView.java b/src/org/geometerplus/zlibrary/text/view/ZLTextView.java index 6aa068409..e0bfa2afb 100644 --- a/src/org/geometerplus/zlibrary/text/view/ZLTextView.java +++ b/src/org/geometerplus/zlibrary/text/view/ZLTextView.java @@ -1314,8 +1314,7 @@ public abstract class ZLTextView extends ZLTextViewBase { return null; } - protected ZLTextElementRegion findRegion(int x, int y, int maxDistance) { - final ZLTextElementRegion.Filter filter = getCurrentFilter(); + protected ZLTextElementRegion findRegion(int x, int y, int maxDistance, ZLTextElementRegion.Filter filter) { ZLTextElementRegion bestRegion = null; int distance = maxDistance + 1; for (ZLTextElementRegion region : myCurrentPage.TextElementMap.ElementRegions) { @@ -1345,17 +1344,7 @@ public abstract class ZLTextView extends ZLTextViewBase { int DOWN = 3; } - private ZLTextElementRegion.Filter getCurrentFilter() { - switch (getMode()) { - default: - case MODE_VISIT_ALL_WORDS: - return ZLTextElementRegion.Filter; - case MODE_VISIT_HYPERLINKS: - return ZLTextHyperlinkRegion.Filter; - } - } - - protected boolean moveRegionPointer(int direction) { + protected boolean moveRegionPointer(int direction, ZLTextElementRegion.Filter filter) { final ArrayList elementRegions = myCurrentPage.TextElementMap.ElementRegions; if (elementRegions.isEmpty()) { return false; @@ -1385,8 +1374,6 @@ public abstract class ZLTextView extends ZLTextViewBase { break; } - final ZLTextElementRegion.Filter filter = getCurrentFilter(); - switch (direction) { case Direction.LEFT: for (; index >= 0; --index) { diff --git a/src/org/geometerplus/zlibrary/text/view/ZLTextViewBase.java b/src/org/geometerplus/zlibrary/text/view/ZLTextViewBase.java index 03a6ea52e..790cf7507 100644 --- a/src/org/geometerplus/zlibrary/text/view/ZLTextViewBase.java +++ b/src/org/geometerplus/zlibrary/text/view/ZLTextViewBase.java @@ -26,7 +26,7 @@ import org.geometerplus.zlibrary.core.view.ZLPaintContext; import org.geometerplus.zlibrary.text.view.style.ZLTextStyleCollection; import org.geometerplus.zlibrary.text.view.style.ZLTextStyleDecoration; -abstract class ZLTextViewBase extends ZLView implements ZLTextViewMode { +abstract class ZLTextViewBase extends ZLView { private ZLTextStyle myTextStyle; private int myWordHeight = -1; @@ -47,8 +47,6 @@ abstract class ZLTextViewBase extends ZLView implements ZLTextViewMode { public abstract int getTopMargin(); public abstract int getBottomMargin(); - public abstract int getMode(); - public abstract ZLColor getBackgroundColor(); public abstract ZLColor getSelectedBackgroundColor(); public abstract ZLColor getTextColor(byte hyperlinkType); diff --git a/src/org/geometerplus/zlibrary/text/view/ZLTextViewMode.java b/src/org/geometerplus/zlibrary/text/view/ZLTextViewMode.java deleted file mode 100644 index d04b57a6f..000000000 --- a/src/org/geometerplus/zlibrary/text/view/ZLTextViewMode.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.geometerplus.zlibrary.text.view; - -public interface ZLTextViewMode { - int MODE_VISIT_HYPERLINKS = 0; - int MODE_VISIT_ALL_WORDS = 1; -}