1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 18:29:23 +02:00

Book.save() is not public now

This commit is contained in:
Nikolay Pultsin 2013-01-13 08:31:54 +04:00
parent 8a78a11bd8
commit bb451e9467
10 changed files with 38 additions and 25 deletions

View file

@ -389,7 +389,7 @@ public final class FBReader extends ZLAndroidActivity {
private void onPreferencesUpdate(int resultCode, Book book) { private void onPreferencesUpdate(int resultCode, Book book) {
if (book != null) { if (book != null) {
book.save(true); getCollection().saveBook(book, true);
} }
final FBReaderApp fbReader = (FBReaderApp)FBReaderApp.Instance(); final FBReaderApp fbReader = (FBReaderApp)FBReaderApp.Instance();
switch (resultCode) { switch (resultCode) {

View file

@ -149,6 +149,17 @@ public class BookCollectionShadow implements IBookCollection, ServiceConnection
} }
} }
public synchronized boolean saveBook(Book book, boolean force) {
if (myInterface == null) {
return false;
}
try {
return myInterface.saveBook(SerializerUtil.serialize(book), force);
} catch (RemoteException e) {
return false;
}
}
public synchronized void removeBook(Book book, boolean deleteFromDisk) { public synchronized void removeBook(Book book, boolean deleteFromDisk) {
if (myInterface != null) { if (myInterface != null) {
try { try {

View file

@ -15,6 +15,7 @@ interface LibraryInterface {
String getBookById(in long id); String getBookById(in long id);
String getRecentBook(in int index); String getRecentBook(in int index);
boolean saveBook(in String book, in boolean force);
void removeBook(in String book, in boolean deleteFromDisk); void removeBook(in String book, in boolean deleteFromDisk);
void addBookToRecentList(in String book); void addBookToRecentList(in String book);
void setBookFavorite(in String book, in boolean favorite); void setBookFavorite(in String book, in boolean favorite);

View file

@ -151,6 +151,10 @@ public class LibraryService extends Service {
return SerializerUtil.serialize(myCollection.getBookById(id)); return SerializerUtil.serialize(myCollection.getBookById(id));
} }
public boolean saveBook(String book, boolean force) {
return myCollection.saveBook(SerializerUtil.deserializeBook(book), force);
}
public void removeBook(String book, boolean deleteFromDisk) { public void removeBook(String book, boolean deleteFromDisk) {
myCollection.removeBook(SerializerUtil.deserializeBook(book), deleteFromDisk); myCollection.removeBook(SerializerUtil.deserializeBook(book), deleteFromDisk);
} }

View file

@ -328,15 +328,11 @@ public class Book {
return false; return false;
} }
public boolean save() { boolean save(final BooksDatabase database, boolean force) {
return save(false);
}
public boolean save(boolean force) {
if (!force && myIsSaved) { if (!force && myIsSaved) {
return false; return false;
} }
final BooksDatabase database = BooksDatabase.Instance();
database.executeAsATransaction(new Runnable() { database.executeAsATransaction(new Runnable() {
public void run() { public void run() {
if (myId >= 0) { if (myId >= 0) {
@ -344,7 +340,11 @@ public class Book {
database.updateBookInfo(myId, fileInfos.getId(File), myEncoding, myLanguage, myTitle); database.updateBookInfo(myId, fileInfos.getId(File), myEncoding, myLanguage, myTitle);
} else { } else {
myId = database.insertBookInfo(File, myEncoding, myLanguage, myTitle); myId = database.insertBookInfo(File, myEncoding, myLanguage, myTitle);
storeAllVisitedHyperinks(); if (myId != -1 && myVisitedHyperlinks != null) {
for (String linkId : myVisitedHyperlinks) {
database.addVisitedHyperlink(myId, linkId);
}
}
} }
long index = 0; long index = 0;
@ -399,14 +399,6 @@ public class Book {
} }
} }
private void storeAllVisitedHyperinks() {
if (myId != -1 && myVisitedHyperlinks != null) {
for (String linkId : myVisitedHyperlinks) {
BooksDatabase.Instance().addVisitedHyperlink(myId, linkId);
}
}
}
public String getContentHashCode() { public String getContentHashCode() {
InputStream stream = null; InputStream stream = null;

View file

@ -89,7 +89,7 @@ public class BookCollection implements IBookCollection {
final FileInfoSet fileInfos = new FileInfoSet(bookFile); final FileInfoSet fileInfos = new FileInfoSet(bookFile);
book = BooksDatabase.Instance().loadBookByFile(fileInfos.getId(bookFile), bookFile); book = myDatabase.loadBookByFile(fileInfos.getId(bookFile), bookFile);
if (book != null) { if (book != null) {
book.loadLists(); book.loadLists();
} }
@ -110,7 +110,7 @@ public class BookCollection implements IBookCollection {
return null; return null;
} }
book.save(); saveBook(book, false);
addBook(book); addBook(book);
return book; return book;
} }
@ -121,7 +121,7 @@ public class BookCollection implements IBookCollection {
return book; return book;
} }
book = BooksDatabase.Instance().loadBook(id); book = myDatabase.loadBook(id);
if (book == null) { if (book == null) {
return null; return null;
} }
@ -171,6 +171,10 @@ public class BookCollection implements IBookCollection {
} }
} }
public boolean saveBook(Book book, boolean force) {
return book.save(myDatabase, force);
}
public void removeBook(Book book, boolean deleteFromDisk) { public void removeBook(Book book, boolean deleteFromDisk) {
synchronized (myBooksByFile) { synchronized (myBooksByFile) {
myBooksByFile.remove(book.File); myBooksByFile.remove(book.File);
@ -320,7 +324,7 @@ public class BookCollection implements IBookCollection {
if (!fileInfos.check(file, true)) { if (!fileInfos.check(file, true)) {
try { try {
book.readMetaInfo(); book.readMetaInfo();
book.save(); saveBook(book, false);
} catch (BookReadingException e) { } catch (BookReadingException e) {
doAdd = false; doAdd = false;
} }
@ -374,7 +378,7 @@ public class BookCollection implements IBookCollection {
myDatabase.executeAsATransaction(new Runnable() { myDatabase.executeAsATransaction(new Runnable() {
public void run() { public void run() {
for (Book book : newBooks) { for (Book book : newBooks) {
book.save(); saveBook(book, false);
addBookById(book); addBookById(book);
} }
} }
@ -469,13 +473,13 @@ public class BookCollection implements IBookCollection {
public void saveBookmark(Bookmark bookmark) { public void saveBookmark(Bookmark bookmark) {
if (bookmark != null) { if (bookmark != null) {
bookmark.setId(BooksDatabase.Instance().saveBookmark(bookmark)); bookmark.setId(myDatabase.saveBookmark(bookmark));
} }
} }
public void deleteBookmark(Bookmark bookmark) { public void deleteBookmark(Bookmark bookmark) {
if (bookmark != null && bookmark.getId() != -1) { if (bookmark != null && bookmark.getId() != -1) {
BooksDatabase.Instance().deleteBookmark(bookmark); myDatabase.deleteBookmark(bookmark);
} }
} }

View file

@ -54,6 +54,7 @@ public interface IBookCollection {
Book getBookById(long id); Book getBookById(long id);
Book getRecentBook(int index); Book getRecentBook(int index);
boolean saveBook(Book book, boolean force);
void removeBook(Book book, boolean deleteFromDisk); void removeBook(Book book, boolean deleteFromDisk);
void addBookToRecentList(Book book); void addBookToRecentList(Book book);
void setBookFavorite(Book book, boolean favorite); void setBookFavorite(Book book, boolean favorite);

View file

@ -258,6 +258,7 @@ public final class FBReaderApp extends ZLApplication {
System.gc(); System.gc();
try { try {
Model = BookModel.createModel(book); Model = BookModel.createModel(book);
Collection.saveBook(book, false);
ZLTextHyphenator.Instance().load(book.getLanguage()); ZLTextHyphenator.Instance().load(book.getLanguage());
BookTextView.setModel(Model.getTextModel()); BookTextView.setModel(Model.getTextModel());
BookTextView.gotoPosition(book.getStoredPosition()); BookTextView.gotoPosition(book.getStoredPosition());

View file

@ -58,7 +58,6 @@ public class NativeFormatPlugin extends FormatPlugin {
@Override @Override
public void detectLanguageAndEncoding(Book book) { public void detectLanguageAndEncoding(Book book) {
detectLanguageAndEncodingNative(book); detectLanguageAndEncodingNative(book);
book.save(false);
} }
public native void detectLanguageAndEncodingNative(Book book); public native void detectLanguageAndEncodingNative(Book book);

View file

@ -243,7 +243,7 @@ public final class Library {
return; return;
} }
book.save(true); myCollection.saveBook(book, true);
refreshInTree(ROOT_FAVORITES, book); refreshInTree(ROOT_FAVORITES, book);
refreshInTree(ROOT_RECENT, book); refreshInTree(ROOT_RECENT, book);
removeFromTree(ROOT_FOUND, book); removeFromTree(ROOT_FOUND, book);