From a231bcd4463b085b19b17755c6b22b4a58d58c37 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Wed, 19 Mar 2014 10:23:19 +0200 Subject: [PATCH] external plugins do not support files inside archives --- .../fbreader/book/BookCollection.java | 3 +++ .../fbreader/formats/FormatPlugin.java | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) 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();