mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-06 03:50:19 +02:00
no Library.Instance() in FBReaderApp, IBookCollection is used instead
This commit is contained in:
parent
522d32a585
commit
be4bf6c174
8 changed files with 44 additions and 37 deletions
|
@ -41,7 +41,7 @@ import org.geometerplus.zlibrary.ui.android.view.AndroidFontUtil;
|
|||
import org.geometerplus.fbreader.fbreader.ActionCode;
|
||||
import org.geometerplus.fbreader.fbreader.FBReaderApp;
|
||||
import org.geometerplus.fbreader.bookmodel.BookModel;
|
||||
import org.geometerplus.fbreader.library.Book;
|
||||
import org.geometerplus.fbreader.library.*;
|
||||
import org.geometerplus.fbreader.tips.TipsManager;
|
||||
|
||||
import org.geometerplus.android.fbreader.library.SQLiteBooksDatabase;
|
||||
|
@ -329,10 +329,11 @@ public final class FBReader extends ZLAndroidActivity {
|
|||
|
||||
@Override
|
||||
protected FBReaderApp createApplication() {
|
||||
if (SQLiteBooksDatabase.Instance() == null) {
|
||||
new SQLiteBooksDatabase(this, "READER");
|
||||
BooksDatabase db = SQLiteBooksDatabase.Instance();
|
||||
if (db == null) {
|
||||
db = new SQLiteBooksDatabase(this, "READER");
|
||||
}
|
||||
return new FBReaderApp();
|
||||
return new FBReaderApp(new BookCollection(db));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -143,6 +143,19 @@ public class BookCollectionShadow implements IBookCollection, ServiceConnection
|
|||
}
|
||||
}
|
||||
|
||||
public synchronized List<Bookmark> invisibleBookmarks(Book book) {
|
||||
if (myInterface == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
try {
|
||||
return SerializerUtil.deserializeBookmarkList(
|
||||
myInterface.invisibleBookmarks(SerializerUtil.serialize(book))
|
||||
);
|
||||
} catch (RemoteException e) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized List<Bookmark> allBookmarks() {
|
||||
if (myInterface == null) {
|
||||
return Collections.emptyList();
|
||||
|
|
|
@ -18,6 +18,7 @@ interface LibraryInterface {
|
|||
void addBookToRecentList(in String book);
|
||||
void setBookFavorite(in String book, in boolean favorite);
|
||||
|
||||
List<String> invisibleBookmarks(in String book);
|
||||
List<String> allBookmarks();
|
||||
String saveBookmark(in String bookmark);
|
||||
void deleteBookmark(in String bookmark);
|
||||
|
|
|
@ -157,6 +157,12 @@ public class LibraryService extends Service {
|
|||
myCollection.setBookFavorite(SerializerUtil.deserializeBook(book), favorite);
|
||||
}
|
||||
|
||||
public List<String> invisibleBookmarks(String book) {
|
||||
return SerializerUtil.serializeBookmarkList(
|
||||
myCollection.invisibleBookmarks(SerializerUtil.deserializeBook(book))
|
||||
);
|
||||
}
|
||||
|
||||
public List<String> allBookmarks() {
|
||||
return SerializerUtil.serializeBookmarkList(myCollection.allBookmarks());
|
||||
}
|
||||
|
|
|
@ -118,7 +118,11 @@ public final class FBReaderApp extends ZLApplication {
|
|||
private ZLTextPosition myJumpEndPosition;
|
||||
private Date myJumpTimeStamp;
|
||||
|
||||
public FBReaderApp() {
|
||||
private final IBookCollection myCollection;
|
||||
|
||||
public FBReaderApp(IBookCollection collection) {
|
||||
myCollection = collection;
|
||||
|
||||
addAction(ActionCode.INCREASE_FONT, new ChangeFontSizeAction(this, +2));
|
||||
addAction(ActionCode.DECREASE_FONT, new ChangeFontSizeAction(this, -2));
|
||||
|
||||
|
@ -228,7 +232,7 @@ public final class FBReaderApp extends ZLApplication {
|
|||
|
||||
synchronized void openBookInternal(Book book, Bookmark bookmark, boolean force) {
|
||||
if (book == null) {
|
||||
book = Library.Instance().getRecentBook();
|
||||
book = myCollection.getRecentBook(0);
|
||||
if (book == null || !book.File.exists()) {
|
||||
book = Book.getByFile(Library.getHelpFile());
|
||||
}
|
||||
|
@ -262,7 +266,7 @@ public final class FBReaderApp extends ZLApplication {
|
|||
} else {
|
||||
gotoBookmark(bookmark);
|
||||
}
|
||||
Library.Instance().addBookToRecentList(book);
|
||||
myCollection.addBookToRecentList(book);
|
||||
final StringBuilder title = new StringBuilder(book.getTitle());
|
||||
if (!book.authors().isEmpty()) {
|
||||
boolean first = true;
|
||||
|
@ -300,12 +304,12 @@ public final class FBReaderApp extends ZLApplication {
|
|||
return false;
|
||||
}
|
||||
|
||||
final List<Bookmark> bookmarks = Library.Instance().invisibleBookmarks(Model.Book);
|
||||
final List<Bookmark> bookmarks = myCollection.invisibleBookmarks(Model.Book);
|
||||
if (bookmarks.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
final Bookmark b = bookmarks.get(0);
|
||||
b.delete();
|
||||
myCollection.deleteBookmark(b);
|
||||
gotoBookmark(b);
|
||||
return true;
|
||||
} finally {
|
||||
|
@ -414,7 +418,7 @@ public final class FBReaderApp extends ZLApplication {
|
|||
));
|
||||
}
|
||||
if (ShowPreviousBookInCancelMenuOption.getValue()) {
|
||||
final Book previousBook = Library.Instance().getPreviousBook();
|
||||
final Book previousBook = myCollection.getRecentBook(1);
|
||||
if (previousBook != null) {
|
||||
myCancelActionsList.add(new CancelActionDescription(
|
||||
CancelActionType.previousBook, previousBook.getTitle()
|
||||
|
@ -423,7 +427,7 @@ public final class FBReaderApp extends ZLApplication {
|
|||
}
|
||||
if (ShowPositionsInCancelMenuOption.getValue()) {
|
||||
if (Model != null && Model.Book != null) {
|
||||
for (Bookmark bookmark : Library.Instance().invisibleBookmarks(Model.Book)) {
|
||||
for (Bookmark bookmark : myCollection.invisibleBookmarks(Model.Book)) {
|
||||
myCancelActionsList.add(new BookmarkDescription(bookmark));
|
||||
}
|
||||
}
|
||||
|
@ -448,12 +452,12 @@ public final class FBReaderApp extends ZLApplication {
|
|||
runAction(ActionCode.SHOW_NETWORK_LIBRARY);
|
||||
break;
|
||||
case previousBook:
|
||||
openBook(Library.Instance().getPreviousBook(), null, null);
|
||||
openBook(myCollection.getRecentBook(1), null, null);
|
||||
break;
|
||||
case returnTo:
|
||||
{
|
||||
final Bookmark b = ((BookmarkDescription)description).Bookmark;
|
||||
b.delete();
|
||||
myCollection.deleteBookmark(b);
|
||||
gotoBookmark(b);
|
||||
break;
|
||||
}
|
||||
|
@ -465,15 +469,15 @@ public final class FBReaderApp extends ZLApplication {
|
|||
|
||||
private synchronized void updateInvisibleBookmarksList(Bookmark b) {
|
||||
if (Model != null && Model.Book != null && b != null) {
|
||||
for (Bookmark bm : Library.Instance().invisibleBookmarks(Model.Book)) {
|
||||
for (Bookmark bm : myCollection.invisibleBookmarks(Model.Book)) {
|
||||
if (b.equals(bm)) {
|
||||
bm.delete();
|
||||
myCollection.deleteBookmark(bm);
|
||||
}
|
||||
}
|
||||
b.save();
|
||||
final List<Bookmark> bookmarks = Library.Instance().invisibleBookmarks(Model.Book);
|
||||
myCollection.saveBookmark(b);
|
||||
final List<Bookmark> bookmarks = myCollection.invisibleBookmarks(Model.Book);
|
||||
for (int i = 3; i < bookmarks.size(); ++i) {
|
||||
bookmarks.get(i).delete();
|
||||
myCollection.deleteBookmark(bookmarks.get(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -234,11 +234,4 @@ mainLoop:
|
|||
public void save() {
|
||||
myId = BooksDatabase.Instance().saveBookmark(this);
|
||||
}
|
||||
|
||||
// TODO: this method should be removed
|
||||
public void delete() {
|
||||
if (myId != -1) {
|
||||
BooksDatabase.Instance().deleteBookmark(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ public interface IBookCollection {
|
|||
void setBookFavorite(Book book, boolean favorite);
|
||||
|
||||
List<Bookmark> allBookmarks();
|
||||
List<Bookmark> invisibleBookmarks(Book book);
|
||||
void saveBookmark(Bookmark bookmark);
|
||||
void deleteBookmark(Bookmark bookmark);
|
||||
}
|
||||
|
|
|
@ -281,14 +281,6 @@ public final class Library {
|
|||
return myStatusMask == 0;
|
||||
}
|
||||
|
||||
public Book getRecentBook() {
|
||||
return myCollection.getRecentBook(0);
|
||||
}
|
||||
|
||||
public Book getPreviousBook() {
|
||||
return myCollection.getRecentBook(1);
|
||||
}
|
||||
|
||||
public void startBookSearch(final String pattern) {
|
||||
setStatus(myStatusMask | STATUS_SEARCHING);
|
||||
final Thread searcher = new Thread("Library.searchBooks") {
|
||||
|
@ -393,8 +385,4 @@ public final class Library {
|
|||
getFirstLevelTree(ROOT_FAVORITES).removeBook(book, false);
|
||||
myRootTree.removeBook(book, true);
|
||||
}
|
||||
|
||||
public List<Bookmark> invisibleBookmarks(Book book) {
|
||||
return myCollection.invisibleBookmarks(book);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue