From 9d765548c4015a08972bcf08645f870701fa45b3 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sun, 30 Jan 2011 02:00:18 +0000 Subject: [PATCH] bookmarks refactoring --- .../android/fbreader/BookmarksActivity.java | 22 +++++-------------- .../fbreader/fbreader/FBReaderApp.java | 18 +++++++++++++++ .../fbreader/library/Bookmark.java | 4 ++-- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/org/geometerplus/android/fbreader/BookmarksActivity.java b/src/org/geometerplus/android/fbreader/BookmarksActivity.java index ef86dce98..af2ac8870 100644 --- a/src/org/geometerplus/android/fbreader/BookmarksActivity.java +++ b/src/org/geometerplus/android/fbreader/BookmarksActivity.java @@ -211,24 +211,12 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte private void addBookmark() { final FBReaderApp fbreader = (FBReaderApp)FBReaderApp.Instance(); - final ZLTextView textView = fbreader.getTextView(); - final ZLTextWordCursor cursor = textView.getStartCursor(); - - if (cursor.isNull()) { - // TODO: implement - return; + final Bookmark bookmark = fbreader.addBookmark(20, true); + if (bookmark != null) { + myThisBookBookmarks.add(0, bookmark); + AllBooksBookmarks.add(0, bookmark); + invalidateAllViews(); } - - // TODO: text edit dialog - final Bookmark bookmark = new Bookmark( - fbreader.Model.Book, - textView.getModel().getId(), - cursor, - true - ); - myThisBookBookmarks.add(0, bookmark); - AllBooksBookmarks.add(0, bookmark); - invalidateAllViews(); } private void gotoBookmark(Bookmark bookmark) { diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java index c2c0f5566..42ad66519 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java +++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java @@ -28,6 +28,7 @@ import org.geometerplus.zlibrary.core.dialogs.ZLDialogManager; import org.geometerplus.zlibrary.core.options.*; import org.geometerplus.zlibrary.text.hyphenation.ZLTextHyphenator; +import org.geometerplus.zlibrary.text.view.ZLTextWordCursor; import org.geometerplus.fbreader.bookmodel.BookModel; import org.geometerplus.fbreader.library.Library; @@ -350,4 +351,21 @@ public final class FBReaderApp extends ZLApplication { break; } } + + public Bookmark addBookmark(int maxLength, boolean visible) { + final FBView view = getTextView(); + final ZLTextWordCursor cursor = view.getStartCursor(); + + if (cursor.isNull()) { + return null; + } + + return new Bookmark( + Model.Book, + view.getModel().getId(), + cursor, + maxLength, + visible + ); + } } diff --git a/src/org/geometerplus/fbreader/library/Bookmark.java b/src/org/geometerplus/fbreader/library/Bookmark.java index 96e000537..37a31dae5 100644 --- a/src/org/geometerplus/fbreader/library/Bookmark.java +++ b/src/org/geometerplus/fbreader/library/Bookmark.java @@ -70,13 +70,13 @@ public final class Bookmark extends ZLTextFixedPosition { myIsChanged = false; } - public Bookmark(Book book, String modelId, ZLTextWordCursor cursor, boolean isVisible) { + public Bookmark(Book book, String modelId, ZLTextWordCursor cursor, int maxLength, boolean isVisible) { super(cursor); myId = -1; myBookId = book.getId(); myBookTitle = book.getTitle(); - myText = createBookmarkText(cursor, 20); + myText = createBookmarkText(cursor, maxLength); myCreationDate = new Date(); ModelId = modelId; IsVisible = isVisible;