mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 10:49:24 +02:00
fixed BookCollection.getBookByFile() method for fb2.zip files
This commit is contained in:
parent
8fb04e6404
commit
9dc1bc52ca
4 changed files with 15 additions and 7 deletions
|
@ -8,6 +8,6 @@
|
||||||
# project structure.
|
# project structure.
|
||||||
|
|
||||||
java.encoding=utf-8
|
java.encoding=utf-8
|
||||||
proguard.config=proguard.cfg
|
#proguard.config=proguard.cfg
|
||||||
# Project target.
|
# Project target.
|
||||||
target=android-9
|
target=android-9
|
||||||
|
|
|
@ -149,7 +149,6 @@ public class BookCollectionShadow extends AbstractBookCollection implements Serv
|
||||||
try {
|
try {
|
||||||
return SerializerUtil.deserializeBook(myInterface.getRecentBook(index));
|
return SerializerUtil.deserializeBook(myInterface.getRecentBook(index));
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
e.printStackTrace();
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,6 +69,7 @@ public class Book {
|
||||||
final FormatPlugin plugin = getPlugin(file);
|
final FormatPlugin plugin = getPlugin(file);
|
||||||
File = plugin.realBookFile(file);
|
File = plugin.realBookFile(file);
|
||||||
readMetaInfo(plugin);
|
readMetaInfo(plugin);
|
||||||
|
myIsSaved = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reloadInfoFromFile() {
|
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);
|
final FormatPlugin plugin = PluginCollection.Instance().getPlugin(file);
|
||||||
if (plugin == null) {
|
if (plugin == null) {
|
||||||
throw new BookReadingException("pluginNotFound", file);
|
throw new BookReadingException("pluginNotFound", file);
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.geometerplus.zlibrary.text.view.ZLTextPosition;
|
||||||
|
|
||||||
import org.geometerplus.fbreader.Paths;
|
import org.geometerplus.fbreader.Paths;
|
||||||
import org.geometerplus.fbreader.bookmodel.BookReadingException;
|
import org.geometerplus.fbreader.bookmodel.BookReadingException;
|
||||||
|
import org.geometerplus.fbreader.formats.*;
|
||||||
|
|
||||||
public class BookCollection extends AbstractBookCollection {
|
public class BookCollection extends AbstractBookCollection {
|
||||||
private final BooksDatabase myDatabase;
|
private final BooksDatabase myDatabase;
|
||||||
|
@ -57,6 +58,15 @@ public class BookCollection extends AbstractBookCollection {
|
||||||
if (bookFile == null) {
|
if (bookFile == null) {
|
||||||
return 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);
|
Book book = myBooksByFile.get(bookFile);
|
||||||
if (book != null) {
|
if (book != null) {
|
||||||
|
@ -92,7 +102,6 @@ public class BookCollection extends AbstractBookCollection {
|
||||||
}
|
}
|
||||||
|
|
||||||
saveBook(book, false);
|
saveBook(book, false);
|
||||||
addBook(book, false);
|
|
||||||
return book;
|
return book;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,8 +167,9 @@ public class BookCollection extends AbstractBookCollection {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final boolean result = book.save(myDatabase, force);
|
||||||
addBook(book, true);
|
addBook(book, true);
|
||||||
return book.save(myDatabase, force);
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeBook(Book book, boolean deleteFromDisk) {
|
public void removeBook(Book book, boolean deleteFromDisk) {
|
||||||
|
@ -289,7 +299,6 @@ public class BookCollection extends AbstractBookCollection {
|
||||||
final Book book = getBookByFile(file);
|
final Book book = getBookByFile(file);
|
||||||
if (book != null) {
|
if (book != null) {
|
||||||
saveBook(book, false);
|
saveBook(book, false);
|
||||||
addBook(book, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
myFilesToRescan.clear();
|
myFilesToRescan.clear();
|
||||||
|
@ -394,7 +403,6 @@ public class BookCollection extends AbstractBookCollection {
|
||||||
public void run() {
|
public void run() {
|
||||||
for (Book book : newBooks) {
|
for (Book book : newBooks) {
|
||||||
saveBook(book, false);
|
saveBook(book, false);
|
||||||
addBook(book, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue