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

fixed BookCollection.getBookByFile() method for fb2.zip files

This commit is contained in:
Nikolay Pultsin 2013-01-25 20:21:38 +04:00
parent 8fb04e6404
commit 9dc1bc52ca
4 changed files with 15 additions and 7 deletions

View file

@ -8,6 +8,6 @@
# project structure.
java.encoding=utf-8
proguard.config=proguard.cfg
#proguard.config=proguard.cfg
# Project target.
target=android-9

View file

@ -149,7 +149,6 @@ public class BookCollectionShadow extends AbstractBookCollection implements Serv
try {
return SerializerUtil.deserializeBook(myInterface.getRecentBook(index));
} catch (RemoteException e) {
e.printStackTrace();
return null;
}
}

View file

@ -69,6 +69,7 @@ public class Book {
final FormatPlugin plugin = getPlugin(file);
File = plugin.realBookFile(file);
readMetaInfo(plugin);
myIsSaved = false;
}
public void reloadInfoFromFile() {
@ -79,7 +80,7 @@ public class Book {
}
}
private FormatPlugin getPlugin(ZLFile file) throws BookReadingException {
private static FormatPlugin getPlugin(ZLFile file) throws BookReadingException {
final FormatPlugin plugin = PluginCollection.Instance().getPlugin(file);
if (plugin == null) {
throw new BookReadingException("pluginNotFound", file);

View file

@ -28,6 +28,7 @@ import org.geometerplus.zlibrary.text.view.ZLTextPosition;
import org.geometerplus.fbreader.Paths;
import org.geometerplus.fbreader.bookmodel.BookReadingException;
import org.geometerplus.fbreader.formats.*;
public class BookCollection extends AbstractBookCollection {
private final BooksDatabase myDatabase;
@ -57,6 +58,15 @@ public class BookCollection extends AbstractBookCollection {
if (bookFile == null) {
return null;
}
final FormatPlugin plugin = PluginCollection.Instance().getPlugin(bookFile);
if (plugin == null) {
return null;
}
try {
bookFile = plugin.realBookFile(bookFile);
} catch (BookReadingException e) {
return null;
}
Book book = myBooksByFile.get(bookFile);
if (book != null) {
@ -92,7 +102,6 @@ public class BookCollection extends AbstractBookCollection {
}
saveBook(book, false);
addBook(book, false);
return book;
}
@ -158,8 +167,9 @@ public class BookCollection extends AbstractBookCollection {
return false;
}
final boolean result = book.save(myDatabase, force);
addBook(book, true);
return book.save(myDatabase, force);
return result;
}
public void removeBook(Book book, boolean deleteFromDisk) {
@ -289,7 +299,6 @@ public class BookCollection extends AbstractBookCollection {
final Book book = getBookByFile(file);
if (book != null) {
saveBook(book, false);
addBook(book, false);
}
}
myFilesToRescan.clear();
@ -394,7 +403,6 @@ public class BookCollection extends AbstractBookCollection {
public void run() {
for (Book book : newBooks) {
saveBook(book, false);
addBook(book, false);
}
}
});