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:
parent
8a78a11bd8
commit
bb451e9467
10 changed files with 38 additions and 25 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue