From ddfc7407fa91fff5f8f2d959bc11fd5a42cdf5db Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sun, 20 Jan 2013 11:08:52 +0400 Subject: [PATCH] send book & bookmark to BookmarksActivity --- .../android/fbreader/BookmarksActivity.java | 28 +++++++++---------- .../android/fbreader/FBReader.java | 2 ++ .../android/fbreader/ShowBookmarksAction.java | 7 +++++ .../fbreader/fbreader/FBReaderApp.java | 4 +-- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/org/geometerplus/android/fbreader/BookmarksActivity.java b/src/org/geometerplus/android/fbreader/BookmarksActivity.java index 6bce3cb2e..153a5a0c8 100644 --- a/src/org/geometerplus/android/fbreader/BookmarksActivity.java +++ b/src/org/geometerplus/android/fbreader/BookmarksActivity.java @@ -44,7 +44,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte private static final int EDIT_ITEM_ID = 1; private static final int DELETE_ITEM_ID = 2; - List AllBooksBookmarks; + private List myAllBooksBookmarks; private final List myThisBookBookmarks = new LinkedList(); private final List mySearchResults = new LinkedList(); @@ -78,13 +78,13 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte final TabHost host = getTabHost(); LayoutInflater.from(this).inflate(R.layout.bookmarks, host.getTabContentView(), true); - AllBooksBookmarks = Library.Instance().allBookmarks(); - Collections.sort(AllBooksBookmarks, new Bookmark.ByTimeComparator()); - final FBReaderApp fbreader = (FBReaderApp)FBReaderApp.Instance(); + myAllBooksBookmarks = Library.Instance().allBookmarks(); + Collections.sort(myAllBooksBookmarks, new Bookmark.ByTimeComparator()); - if (fbreader.Model != null) { - final long bookId = fbreader.Model.Book.getId(); - for (Bookmark bm : AllBooksBookmarks) { + final Book book = SerializerUtil.deserializeBook(getIntent().getStringExtra(FBReader.BOOK_KEY)); + if (book != null) { + final long bookId = book.getId(); + for (Bookmark bm : myAllBooksBookmarks) { if (bm.getBookId() == bookId) { myThisBookBookmarks.add(bm); } @@ -97,7 +97,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte } myAllBooksView = createTab("allBooks", R.id.all_books); - new BookmarksAdapter(myAllBooksView, AllBooksBookmarks, false); + new BookmarksAdapter(myAllBooksView, myAllBooksBookmarks, false); findViewById(R.id.search_results).setVisibility(View.GONE); } @@ -120,7 +120,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte final LinkedList bookmarks = new LinkedList(); pattern = pattern.toLowerCase(); - for (Bookmark b : AllBooksBookmarks) { + for (Bookmark b : myAllBooksBookmarks) { if (ZLMiscUtil.matchesIgnoreCase(b.getText(), pattern)) { bookmarks.add(b); } @@ -134,7 +134,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte @Override public void onPause() { - for (Bookmark bookmark : AllBooksBookmarks) { + for (Bookmark bookmark : myAllBooksBookmarks) { bookmark.save(); } super.onPause(); @@ -208,7 +208,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte case DELETE_ITEM_ID: bookmark.delete(); myThisBookBookmarks.remove(bookmark); - AllBooksBookmarks.remove(bookmark); + myAllBooksBookmarks.remove(bookmark); mySearchResults.remove(bookmark); invalidateAllViews(); return true; @@ -217,11 +217,11 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte } private void addBookmark() { - final FBReaderApp fbreader = (FBReaderApp)FBReaderApp.Instance(); - final Bookmark bookmark = fbreader.addBookmark(20, true); + final Bookmark bookmark = + SerializerUtil.deserializeBookmark(getIntent().getStringExtra(FBReader.BOOKMARK_KEY)); if (bookmark != null) { myThisBookBookmarks.add(0, bookmark); - AllBooksBookmarks.add(0, bookmark); + myAllBooksBookmarks.add(0, bookmark); invalidateAllViews(); } } diff --git a/src/org/geometerplus/android/fbreader/FBReader.java b/src/org/geometerplus/android/fbreader/FBReader.java index a643f718b..15f7c26ea 100644 --- a/src/org/geometerplus/android/fbreader/FBReader.java +++ b/src/org/geometerplus/android/fbreader/FBReader.java @@ -57,6 +57,8 @@ import org.geometerplus.android.util.UIUtil; public final class FBReader extends Activity { public static final String ACTION_OPEN_BOOK = "android.fbreader.action.VIEW"; public static final String BOOK_PATH_KEY = "BookPath"; + public static final String BOOK_KEY = "fbreader.book"; + public static final String BOOKMARK_KEY = "fbreader.bookmark"; public static final int REQUEST_PREFERENCES = 1; public static final int REQUEST_BOOK_INFO = 2; diff --git a/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java b/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java index 494dbb539..1cef54ea6 100644 --- a/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java +++ b/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java @@ -21,6 +21,7 @@ package org.geometerplus.android.fbreader; import android.content.Intent; +import org.geometerplus.fbreader.book.SerializerUtil; import org.geometerplus.fbreader.fbreader.FBReaderApp; class ShowBookmarksAction extends FBAndroidAction { @@ -37,6 +38,12 @@ class ShowBookmarksAction extends FBAndroidAction { protected void run(Object ... params) { final Intent intent = new Intent(BaseActivity.getApplicationContext(), BookmarksActivity.class); + intent.putExtra( + FBReader.BOOK_KEY, SerializerUtil.serialize(Reader.Model.Book) + ); + intent.putExtra( + FBReader.BOOKMARK_KEY, SerializerUtil.serialize(Reader.createBookmark(20, true)) + ); OrientationUtil.startActivity(BaseActivity, intent); } } diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java index dae87ca26..959eba1dc 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java +++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java @@ -465,11 +465,11 @@ public final class FBReaderApp extends ZLApplication { public void addInvisibleBookmark() { if (Model.Book != null && getTextView() == BookTextView) { - updateInvisibleBookmarksList(addBookmark(6, false)); + updateInvisibleBookmarksList(createBookmark(6, false)); } } - public Bookmark addBookmark(int maxLength, boolean visible) { + public Bookmark createBookmark(int maxLength, boolean visible) { final FBView view = getTextView(); final ZLTextWordCursor cursor = view.getStartCursor();