diff --git a/src/org/geometerplus/fbreader/book/BookCollection.java b/src/org/geometerplus/fbreader/book/BookCollection.java index 16ceb6388..2f42255b8 100644 --- a/src/org/geometerplus/fbreader/book/BookCollection.java +++ b/src/org/geometerplus/fbreader/book/BookCollection.java @@ -64,6 +64,9 @@ public class BookCollection extends AbstractBookCollection { if (plugin == null) { return null; } + if (!plugin.type().Builtin && bookFile != bookFile.getPhysicalFile()) { + return null; + } try { bookFile = plugin.realBookFile(bookFile); } catch (BookReadingException e) { diff --git a/src/org/geometerplus/fbreader/formats/FormatPlugin.java b/src/org/geometerplus/fbreader/formats/FormatPlugin.java index 994497fd2..48d8698e5 100644 --- a/src/org/geometerplus/fbreader/formats/FormatPlugin.java +++ b/src/org/geometerplus/fbreader/formats/FormatPlugin.java @@ -50,12 +50,18 @@ public abstract class FormatPlugin { public abstract String readAnnotation(ZLFile file); public enum Type { - ANY, - JAVA, - NATIVE, - PLUGIN, - EXTERNAL, - NONE + ANY(false), + JAVA(true), + NATIVE(true), + PLUGIN(false), + EXTERNAL(false), + NONE(false); + + public final boolean Builtin; + + Type(boolean builtin) { + Builtin = builtin; + } }; public abstract Type type();