1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 17:59:33 +02:00

no "encryption method" for entire epub, just encryption info map for separate files

This commit is contained in:
Nikolay Pultsin 2014-04-06 10:27:55 +01:00
parent 4fb3888b07
commit cb08c3bc3c
16 changed files with 86 additions and 60 deletions

View file

@ -132,14 +132,27 @@ JNIEXPORT jint JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin
}
extern "C"
JNIEXPORT jstring JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readEncryptionMethod(JNIEnv* env, jobject thiz, jobject javaBook) {
JNIEXPORT jobject JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readEncryptionInfosNative(JNIEnv* env, jobject thiz, jobject javaBook) {
shared_ptr<FormatPlugin> plugin = findCppPlugin(thiz);
if (plugin.isNull()) {
return AndroidUtil::createJavaString(env, EncryptionMethod::UNSUPPORTED);
return 0;
}
shared_ptr<Book> book = Book::loadFromJavaBook(env, javaBook);
return AndroidUtil::createJavaString(env, plugin->readEncryptionMethod(*book));
std::vector<shared_ptr<FileEncryptionInfo> > infos = plugin->readEncryptionInfos(*book);
if (infos.empty()) {
return 0;
}
jobjectArray jList = env->NewObjectArray(
infos.size(), AndroidUtil::Class_FileEncryptionInfo.j(), 0
);
for (std::size_t i = 0; i < infos.size(); ++i) {
jobject jInfo = AndroidUtil::createJavaEncryptionInfo(env, infos[i]);
env->SetObjectArrayElement(jList, i, jInfo);
env->DeleteLocalRef(jInfo);
}
return jList;
}
extern "C"