1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 10:49:24 +02:00

send book & bookmark to BookmarksActivity

This commit is contained in:
Nikolay Pultsin 2013-01-20 11:08:52 +04:00
parent 9f9632bad2
commit ddfc7407fa
4 changed files with 25 additions and 16 deletions

View file

@ -44,7 +44,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
private static final int EDIT_ITEM_ID = 1; private static final int EDIT_ITEM_ID = 1;
private static final int DELETE_ITEM_ID = 2; private static final int DELETE_ITEM_ID = 2;
List<Bookmark> AllBooksBookmarks; private List<Bookmark> myAllBooksBookmarks;
private final List<Bookmark> myThisBookBookmarks = new LinkedList<Bookmark>(); private final List<Bookmark> myThisBookBookmarks = new LinkedList<Bookmark>();
private final List<Bookmark> mySearchResults = new LinkedList<Bookmark>(); private final List<Bookmark> mySearchResults = new LinkedList<Bookmark>();
@ -78,13 +78,13 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
final TabHost host = getTabHost(); final TabHost host = getTabHost();
LayoutInflater.from(this).inflate(R.layout.bookmarks, host.getTabContentView(), true); LayoutInflater.from(this).inflate(R.layout.bookmarks, host.getTabContentView(), true);
AllBooksBookmarks = Library.Instance().allBookmarks(); myAllBooksBookmarks = Library.Instance().allBookmarks();
Collections.sort(AllBooksBookmarks, new Bookmark.ByTimeComparator()); Collections.sort(myAllBooksBookmarks, new Bookmark.ByTimeComparator());
final FBReaderApp fbreader = (FBReaderApp)FBReaderApp.Instance();
if (fbreader.Model != null) { final Book book = SerializerUtil.deserializeBook(getIntent().getStringExtra(FBReader.BOOK_KEY));
final long bookId = fbreader.Model.Book.getId(); if (book != null) {
for (Bookmark bm : AllBooksBookmarks) { final long bookId = book.getId();
for (Bookmark bm : myAllBooksBookmarks) {
if (bm.getBookId() == bookId) { if (bm.getBookId() == bookId) {
myThisBookBookmarks.add(bm); myThisBookBookmarks.add(bm);
} }
@ -97,7 +97,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
} }
myAllBooksView = createTab("allBooks", R.id.all_books); 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); findViewById(R.id.search_results).setVisibility(View.GONE);
} }
@ -120,7 +120,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
final LinkedList<Bookmark> bookmarks = new LinkedList<Bookmark>(); final LinkedList<Bookmark> bookmarks = new LinkedList<Bookmark>();
pattern = pattern.toLowerCase(); pattern = pattern.toLowerCase();
for (Bookmark b : AllBooksBookmarks) { for (Bookmark b : myAllBooksBookmarks) {
if (ZLMiscUtil.matchesIgnoreCase(b.getText(), pattern)) { if (ZLMiscUtil.matchesIgnoreCase(b.getText(), pattern)) {
bookmarks.add(b); bookmarks.add(b);
} }
@ -134,7 +134,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
@Override @Override
public void onPause() { public void onPause() {
for (Bookmark bookmark : AllBooksBookmarks) { for (Bookmark bookmark : myAllBooksBookmarks) {
bookmark.save(); bookmark.save();
} }
super.onPause(); super.onPause();
@ -208,7 +208,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
case DELETE_ITEM_ID: case DELETE_ITEM_ID:
bookmark.delete(); bookmark.delete();
myThisBookBookmarks.remove(bookmark); myThisBookBookmarks.remove(bookmark);
AllBooksBookmarks.remove(bookmark); myAllBooksBookmarks.remove(bookmark);
mySearchResults.remove(bookmark); mySearchResults.remove(bookmark);
invalidateAllViews(); invalidateAllViews();
return true; return true;
@ -217,11 +217,11 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
} }
private void addBookmark() { private void addBookmark() {
final FBReaderApp fbreader = (FBReaderApp)FBReaderApp.Instance(); final Bookmark bookmark =
final Bookmark bookmark = fbreader.addBookmark(20, true); SerializerUtil.deserializeBookmark(getIntent().getStringExtra(FBReader.BOOKMARK_KEY));
if (bookmark != null) { if (bookmark != null) {
myThisBookBookmarks.add(0, bookmark); myThisBookBookmarks.add(0, bookmark);
AllBooksBookmarks.add(0, bookmark); myAllBooksBookmarks.add(0, bookmark);
invalidateAllViews(); invalidateAllViews();
} }
} }

View file

@ -57,6 +57,8 @@ import org.geometerplus.android.util.UIUtil;
public final class FBReader extends Activity { public final class FBReader extends Activity {
public static final String ACTION_OPEN_BOOK = "android.fbreader.action.VIEW"; public static final String ACTION_OPEN_BOOK = "android.fbreader.action.VIEW";
public static final String BOOK_PATH_KEY = "BookPath"; 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_PREFERENCES = 1;
public static final int REQUEST_BOOK_INFO = 2; public static final int REQUEST_BOOK_INFO = 2;

View file

@ -21,6 +21,7 @@ package org.geometerplus.android.fbreader;
import android.content.Intent; import android.content.Intent;
import org.geometerplus.fbreader.book.SerializerUtil;
import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.fbreader.fbreader.FBReaderApp;
class ShowBookmarksAction extends FBAndroidAction { class ShowBookmarksAction extends FBAndroidAction {
@ -37,6 +38,12 @@ class ShowBookmarksAction extends FBAndroidAction {
protected void run(Object ... params) { protected void run(Object ... params) {
final Intent intent = final Intent intent =
new Intent(BaseActivity.getApplicationContext(), BookmarksActivity.class); 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); OrientationUtil.startActivity(BaseActivity, intent);
} }
} }

View file

@ -465,11 +465,11 @@ public final class FBReaderApp extends ZLApplication {
public void addInvisibleBookmark() { public void addInvisibleBookmark() {
if (Model.Book != null && getTextView() == BookTextView) { 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 FBView view = getTextView();
final ZLTextWordCursor cursor = view.getStartCursor(); final ZLTextWordCursor cursor = view.getStartCursor();