diff --git a/TODO.highlighting b/TODO.highlighting index b8b8339b6..95228119a 100644 --- a/TODO.highlighting +++ b/TODO.highlighting @@ -1,3 +1,4 @@ +* re-implement go to bookmark operation DONE highlight bookmarks DONE show highlights in footnote view DONE don't draw all bookmarks, filter by position diff --git a/src/org/geometerplus/android/fbreader/FBReader.java b/src/org/geometerplus/android/fbreader/FBReader.java index 10ccbd78e..de660407e 100644 --- a/src/org/geometerplus/android/fbreader/FBReader.java +++ b/src/org/geometerplus/android/fbreader/FBReader.java @@ -638,27 +638,6 @@ public final class FBReader extends Activity { return true; } - void addSelectionBookmark() { - final FBView fbView = myFBReaderApp.getTextView(); - final String text = fbView.getSelectedText(); - - final Bookmark bookmark = new Bookmark( - myFBReaderApp.Model.Book, - fbView.getModel().getId(), - fbView.getSelectionStartPosition(), - fbView.getSelectionEndPosition(), - text, - true - ); - myFBReaderApp.Collection.saveBookmark(bookmark); - fbView.clearSelection(); - - UIUtil.showMessageText( - this, - ZLResource.resource("selection").getResource("bookmarkCreated").getValue().replace("%s", text) - ); - } - @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return (myMainView != null && myMainView.onKeyDown(keyCode, event)) || super.onKeyDown(keyCode, event); diff --git a/src/org/geometerplus/android/fbreader/SelectionBookmarkAction.java b/src/org/geometerplus/android/fbreader/SelectionBookmarkAction.java index a5d1099aa..9fbed96e9 100644 --- a/src/org/geometerplus/android/fbreader/SelectionBookmarkAction.java +++ b/src/org/geometerplus/android/fbreader/SelectionBookmarkAction.java @@ -19,8 +19,14 @@ package org.geometerplus.android.fbreader; +import org.geometerplus.zlibrary.core.resources.ZLResource; + +import org.geometerplus.fbreader.book.Bookmark; +import org.geometerplus.fbreader.book.SerializerUtil; import org.geometerplus.fbreader.fbreader.FBReaderApp; +import org.geometerplus.android.util.UIUtil; + public class SelectionBookmarkAction extends FBAndroidAction { SelectionBookmarkAction(FBReader baseApplication, FBReaderApp fbreader) { super(baseApplication, fbreader); @@ -28,6 +34,12 @@ public class SelectionBookmarkAction extends FBAndroidAction { @Override protected void run(Object ... params) { - BaseActivity.addSelectionBookmark(); + final Bookmark bookmark = Reader.addSelectionBookmark(); + UIUtil.showMessageText( + BaseActivity, + ZLResource.resource("selection").getResource("bookmarkCreated").getValue() + .replace("%s", bookmark.getText()) + ); + //final Intent styleIntent = new Intent(); } } diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java index 4f5355061..87fa82c48 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java +++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java @@ -258,6 +258,24 @@ public final class FBReaderApp extends ZLApplication { FootnoteView.clearCaches(); } + public Bookmark addSelectionBookmark() { + final FBView fbView = getTextView(); + final String text = fbView.getSelectedText(); + + final Bookmark bookmark = new Bookmark( + Model.Book, + fbView.getModel().getId(), + fbView.getSelectionStartPosition(), + fbView.getSelectionEndPosition(), + text, + true + ); + Collection.saveBookmark(bookmark); + fbView.clearSelection(); + + return bookmark; + } + private void setBookmarkHighlightings(ZLTextView view, String modelId) { view.removeHighlightings(BookmarkHighlighting.class); for (BookmarkQuery query = new BookmarkQuery(Model.Book, 20); ; query = query.next()) {