diff --git a/assets/resources/application/en.xml b/assets/resources/application/en.xml
index a854f439c..4760f59c8 100644
--- a/assets/resources/application/en.xml
+++ b/assets/resources/application/en.xml
@@ -859,6 +859,7 @@
+
diff --git a/jni/NativeFormats/JavaNativeFormatPlugin.cpp b/jni/NativeFormats/JavaNativeFormatPlugin.cpp
index 659c5f108..17bc3d928 100644
--- a/jni/NativeFormats/JavaNativeFormatPlugin.cpp
+++ b/jni/NativeFormats/JavaNativeFormatPlugin.cpp
@@ -131,14 +131,14 @@ JNIEXPORT jint JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin
}
extern "C"
-JNIEXPORT jstring JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readEncryptionType(JNIEnv* env, jobject thiz, jobject javaBook) {
+JNIEXPORT jstring JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readEncryptionMethod(JNIEnv* env, jobject thiz, jobject javaBook) {
shared_ptr plugin = findCppPlugin(thiz);
if (plugin.isNull()) {
- return AndroidUtil::createJavaString(env, FormatPlugin::EncryptionType::UNKNOWN);
+ return AndroidUtil::createJavaString(env, FormatPlugin::EncryptionMethod::UNSUPPORTED);
}
shared_ptr book = Book::loadFromJavaBook(env, javaBook);
- return AndroidUtil::createJavaString(env, plugin->readEncryptionType(*book));
+ return AndroidUtil::createJavaString(env, plugin->readEncryptionMethod(*book));
}
extern "C"
diff --git a/jni/NativeFormats/fbreader/src/formats/FormatPlugin.cpp b/jni/NativeFormats/fbreader/src/formats/FormatPlugin.cpp
index 1084107ed..b5bababd3 100644
--- a/jni/NativeFormats/fbreader/src/formats/FormatPlugin.cpp
+++ b/jni/NativeFormats/fbreader/src/formats/FormatPlugin.cpp
@@ -28,9 +28,9 @@
#include "../library/Book.h"
-const std::string FormatPlugin::EncryptionType::NONE = "none";
-const std::string FormatPlugin::EncryptionType::UNKNOWN = "unknown";
-const std::string FormatPlugin::EncryptionType::MARLIN = "marlin";
+const std::string FormatPlugin::EncryptionMethod::NONE = "none";
+const std::string FormatPlugin::EncryptionMethod::UNSUPPORTED = "unsupported";
+const std::string FormatPlugin::EncryptionMethod::MARLIN = "marlin";
bool FormatPlugin::detectEncodingAndLanguage(Book &book, ZLInputStream &stream, bool force) {
std::string language = book.language();
@@ -103,8 +103,8 @@ const std::string &FormatPlugin::tryOpen(const ZLFile&) const {
return EMPTY;
}
-const std::string &FormatPlugin::readEncryptionType(Book &book) const {
- return EncryptionType::NONE;
+const std::string &FormatPlugin::readEncryptionMethod(Book &book) const {
+ return EncryptionMethod::NONE;
}
shared_ptr FormatPlugin::coverImage(const ZLFile &file) const {
diff --git a/jni/NativeFormats/fbreader/src/formats/FormatPlugin.h b/jni/NativeFormats/fbreader/src/formats/FormatPlugin.h
index e0ebb7f40..e15f04219 100644
--- a/jni/NativeFormats/fbreader/src/formats/FormatPlugin.h
+++ b/jni/NativeFormats/fbreader/src/formats/FormatPlugin.h
@@ -47,11 +47,11 @@ public:
class FormatPlugin {
public:
- class EncryptionType {
+ class EncryptionMethod {
public:
static const std::string NONE;
- static const std::string UNKNOWN;
+ static const std::string UNSUPPORTED;
static const std::string MARLIN;
};
@@ -67,7 +67,7 @@ public:
virtual const std::string &tryOpen(const ZLFile &file) const;
virtual bool readMetaInfo(Book &book) const = 0;
- virtual const std::string &readEncryptionType(Book &book) const;
+ virtual const std::string &readEncryptionMethod(Book &book) const;
virtual bool readUids(Book &book) const = 0;
virtual bool readLanguageAndEncoding(Book &book) const = 0;
virtual bool readModel(BookModel &model) const = 0;
diff --git a/jni/NativeFormats/fbreader/src/formats/oeb/OEBEncryptionReader.cpp b/jni/NativeFormats/fbreader/src/formats/oeb/OEBEncryptionReader.cpp
index 3b4bbe9ea..772289614 100644
--- a/jni/NativeFormats/fbreader/src/formats/oeb/OEBEncryptionReader.cpp
+++ b/jni/NativeFormats/fbreader/src/formats/oeb/OEBEncryptionReader.cpp
@@ -30,17 +30,17 @@ OEBEncryptionReader::OEBEncryptionReader() : myIsMarlin(false) {
const std::string &OEBEncryptionReader::readEncryptionInfo(const ZLFile &epubFile) {
shared_ptr epubDir = epubFile.directory();
if (epubDir.isNull()) {
- return FormatPlugin::EncryptionType::UNKNOWN;
+ return FormatPlugin::EncryptionMethod::UNSUPPORTED;
}
const ZLFile rightsFile(epubDir->itemPath("META-INF/rights.xml"));
if (rightsFile.exists()) {
readDocument(rightsFile);
return myIsMarlin
- ? FormatPlugin::EncryptionType::MARLIN
- : FormatPlugin::EncryptionType::UNKNOWN;
+ ? FormatPlugin::EncryptionMethod::MARLIN
+ : FormatPlugin::EncryptionMethod::UNSUPPORTED;
} else {
- return FormatPlugin::EncryptionType::NONE;
+ return FormatPlugin::EncryptionMethod::NONE;
}
}
diff --git a/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.cpp b/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.cpp
index 39cea990b..96649fa74 100644
--- a/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.cpp
+++ b/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.cpp
@@ -129,7 +129,7 @@ bool OEBPlugin::readMetaInfo(Book &book) const {
return OEBMetaInfoReader(book).readMetaInfo(opfFile(file));
}
-const std::string &OEBPlugin::readEncryptionType(Book &book) const {
+const std::string &OEBPlugin::readEncryptionMethod(Book &book) const {
return OEBEncryptionReader().readEncryptionInfo(epubFile(book.file()));
}
diff --git a/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.h b/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.h
index 4cb7f738a..6dbd23b67 100644
--- a/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.h
+++ b/jni/NativeFormats/fbreader/src/formats/oeb/OEBPlugin.h
@@ -33,7 +33,7 @@ public:
bool providesMetaInfo() const;
const std::string supportedFileType() const;
bool readMetaInfo(Book &book) const;
- const std::string &readEncryptionType(Book &book) const;
+ const std::string &readEncryptionMethod(Book &book) const;
bool readUids(Book &book) const;
bool readLanguageAndEncoding(Book &book) const;
bool readModel(BookModel &model) const;
diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java
index 693dee6c8..946982c7e 100644
--- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java
+++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java
@@ -34,6 +34,7 @@ import org.geometerplus.zlibrary.text.view.*;
import org.geometerplus.fbreader.book.*;
import org.geometerplus.fbreader.bookmodel.*;
import org.geometerplus.fbreader.fbreader.options.*;
+import org.geometerplus.fbreader.formats.FormatPlugin;
public final class FBReaderApp extends ZLApplication {
public final MiscOptions MiscOptions = new MiscOptions();
@@ -278,6 +279,22 @@ public final class FBReaderApp extends ZLApplication {
getViewWidget().reset();
getViewWidget().repaint();
+
+ try {
+ if (!FormatPlugin.EncryptionMethod.NONE.equals(
+ book.getPlugin().readEncryptionMethod(book))) {
+ System.err.println("UNSUPPORTED ALGORITHM");
+ /*
+ UIUtil.showErrorMessage(
+ FBReader.this,
+ "unsupportedEncryptionAlgorithm",
+ myBook.File.getPath()
+ );
+ */
+ }
+ } catch (BookReadingException e) {
+ // ignore
+ }
}
private List invisibleBookmarks() {
diff --git a/src/org/geometerplus/fbreader/formats/FormatPlugin.java b/src/org/geometerplus/fbreader/formats/FormatPlugin.java
index edc442f4d..e4e0cf383 100644
--- a/src/org/geometerplus/fbreader/formats/FormatPlugin.java
+++ b/src/org/geometerplus/fbreader/formats/FormatPlugin.java
@@ -28,9 +28,9 @@ import org.geometerplus.fbreader.bookmodel.BookModel;
import org.geometerplus.fbreader.bookmodel.BookReadingException;
public abstract class FormatPlugin {
- public interface EncryptionType {
+ public interface EncryptionMethod {
String NONE = "none";
- String UNKNOWN = "unknown";
+ String UNSUPPORTED = "unsupported";
String MARLIN = "marlin";
}
@@ -48,7 +48,7 @@ public abstract class FormatPlugin {
return file;
}
public abstract void readMetaInfo(Book book) throws BookReadingException;
- public abstract String readEncryptionType(Book book);
+ public abstract String readEncryptionMethod(Book book);
public abstract void readUids(Book book) throws BookReadingException;
public abstract void readModel(BookModel model) throws BookReadingException;
public abstract void detectLanguageAndEncoding(Book book) throws BookReadingException;
diff --git a/src/org/geometerplus/fbreader/formats/NativeFormatPlugin.java b/src/org/geometerplus/fbreader/formats/NativeFormatPlugin.java
index a8902653c..ea46ee321 100644
--- a/src/org/geometerplus/fbreader/formats/NativeFormatPlugin.java
+++ b/src/org/geometerplus/fbreader/formats/NativeFormatPlugin.java
@@ -61,7 +61,7 @@ public class NativeFormatPlugin extends FormatPlugin {
private native int readMetaInfoNative(Book book);
@Override
- public native String readEncryptionType(Book book);
+ public native String readEncryptionMethod(Book book);
@Override
synchronized public void readUids(Book book) throws BookReadingException {
@@ -83,7 +83,6 @@ public class NativeFormatPlugin extends FormatPlugin {
@Override
synchronized public void readModel(BookModel model) throws BookReadingException {
final int code = readModelNative(model);
- System.err.println("ENCRYPTION TYPE = " + readEncryptionType(model.Book));
if (code != 0) {
throw new BookReadingException(
"nativeCodeFailure",
diff --git a/src/org/geometerplus/fbreader/formats/fb2/FB2Plugin.java b/src/org/geometerplus/fbreader/formats/fb2/FB2Plugin.java
index fb45f3de3..291bcabf1 100644
--- a/src/org/geometerplus/fbreader/formats/fb2/FB2Plugin.java
+++ b/src/org/geometerplus/fbreader/formats/fb2/FB2Plugin.java
@@ -48,8 +48,8 @@ public class FB2Plugin extends JavaFormatPlugin {
}
@Override
- public String readEncryptionType(Book book) {
- return EncryptionType.NONE;
+ public String readEncryptionMethod(Book book) {
+ return EncryptionMethod.NONE;
}
@Override
diff --git a/src/org/geometerplus/fbreader/formats/oeb/OEBPlugin.java b/src/org/geometerplus/fbreader/formats/oeb/OEBPlugin.java
index f019d4ada..1c7639f4b 100644
--- a/src/org/geometerplus/fbreader/formats/oeb/OEBPlugin.java
+++ b/src/org/geometerplus/fbreader/formats/oeb/OEBPlugin.java
@@ -62,8 +62,8 @@ public class OEBPlugin extends JavaFormatPlugin {
}
@Override
- public String readEncryptionType(Book book) {
- return EncryptionType.NONE;
+ public String readEncryptionMethod(Book book) {
+ return EncryptionMethod.NONE;
}
@Override
diff --git a/src/org/geometerplus/fbreader/formats/pdb/MobipocketPlugin.java b/src/org/geometerplus/fbreader/formats/pdb/MobipocketPlugin.java
index db60c3857..964031fc2 100644
--- a/src/org/geometerplus/fbreader/formats/pdb/MobipocketPlugin.java
+++ b/src/org/geometerplus/fbreader/formats/pdb/MobipocketPlugin.java
@@ -124,8 +124,8 @@ public class MobipocketPlugin extends JavaFormatPlugin {
}
@Override
- public String readEncryptionType(Book book) {
- return EncryptionType.NONE;
+ public String readEncryptionMethod(Book book) {
+ return EncryptionMethod.NONE;
}
@Override