mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 18:29:23 +02:00
code uniformization
This commit is contained in:
parent
ac33d013fc
commit
bfcdbe9808
7 changed files with 20 additions and 49 deletions
|
@ -28,13 +28,11 @@
|
||||||
#include "fbreader/src/library/Book.h"
|
#include "fbreader/src/library/Book.h"
|
||||||
#include "fbreader/src/library/Tag.h"
|
#include "fbreader/src/library/Tag.h"
|
||||||
|
|
||||||
static shared_ptr<FormatPlugin> findCppPlugin(JNIEnv *env, jobject base) {
|
static shared_ptr<FormatPlugin> findCppPlugin(jobject base) {
|
||||||
jstring fileTypeJava = AndroidUtil::Method_NativeFormatPlugin_supportedFileType->call(base);
|
const std::string fileType = AndroidUtil::Method_NativeFormatPlugin_supportedFileType->callForCppString(base);
|
||||||
const std::string fileTypeCpp = AndroidUtil::fromJavaString(env, fileTypeJava);
|
shared_ptr<FormatPlugin> plugin = PluginCollection::Instance().pluginByType(fileType);
|
||||||
env->DeleteLocalRef(fileTypeJava);
|
|
||||||
shared_ptr<FormatPlugin> plugin = PluginCollection::Instance().pluginByType(fileTypeCpp);
|
|
||||||
if (plugin.isNull()) {
|
if (plugin.isNull()) {
|
||||||
AndroidUtil::throwRuntimeException("Native FormatPlugin instance is NULL for type " + fileTypeCpp);
|
AndroidUtil::throwRuntimeException("Native FormatPlugin instance is NULL for type " + fileType);
|
||||||
}
|
}
|
||||||
return plugin;
|
return plugin;
|
||||||
}
|
}
|
||||||
|
@ -101,7 +99,7 @@ void fillLanguageAndEncoding(JNIEnv* env, jobject javaBook, Book &book) {
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readMetaInfoNative(JNIEnv* env, jobject thiz, jobject javaBook) {
|
JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readMetaInfoNative(JNIEnv* env, jobject thiz, jobject javaBook) {
|
||||||
shared_ptr<FormatPlugin> plugin = findCppPlugin(env, thiz);
|
shared_ptr<FormatPlugin> plugin = findCppPlugin(thiz);
|
||||||
if (plugin.isNull()) {
|
if (plugin.isNull()) {
|
||||||
return JNI_FALSE;
|
return JNI_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -118,7 +116,7 @@ JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPl
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT void JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_detectLanguageAndEncoding(JNIEnv* env, jobject thiz, jobject javaBook) {
|
JNIEXPORT void JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_detectLanguageAndEncoding(JNIEnv* env, jobject thiz, jobject javaBook) {
|
||||||
shared_ptr<FormatPlugin> plugin = findCppPlugin(env, thiz);
|
shared_ptr<FormatPlugin> plugin = findCppPlugin(thiz);
|
||||||
if (plugin.isNull()) {
|
if (plugin.isNull()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -240,7 +238,7 @@ static bool initTOC(JNIEnv *env, jobject javaModel, BookModel &model) {
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readModelNative(JNIEnv* env, jobject thiz, jobject javaModel) {
|
JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readModelNative(JNIEnv* env, jobject thiz, jobject javaModel) {
|
||||||
shared_ptr<FormatPlugin> plugin = findCppPlugin(env, thiz);
|
shared_ptr<FormatPlugin> plugin = findCppPlugin(thiz);
|
||||||
if (plugin.isNull()) {
|
if (plugin.isNull()) {
|
||||||
return JNI_FALSE;
|
return JNI_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -287,14 +285,12 @@ JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPl
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT void JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readCoverInternal(JNIEnv* env, jobject thiz, jobject file, jobjectArray box) {
|
JNIEXPORT void JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_readCoverInternal(JNIEnv* env, jobject thiz, jobject file, jobjectArray box) {
|
||||||
shared_ptr<FormatPlugin> plugin = findCppPlugin(env, thiz);
|
shared_ptr<FormatPlugin> plugin = findCppPlugin(thiz);
|
||||||
if (plugin.isNull()) {
|
if (plugin.isNull()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring javaPath = AndroidUtil::Method_ZLFile_getPath->call(file);
|
const std::string path = AndroidUtil::Method_ZLFile_getPath->callForCppString(file);
|
||||||
const std::string path = AndroidUtil::fromJavaString(env, javaPath);
|
|
||||||
env->DeleteLocalRef(javaPath);
|
|
||||||
|
|
||||||
shared_ptr<ZLImage> image = plugin->coverImage(ZLFile(path));
|
shared_ptr<ZLImage> image = plugin->coverImage(ZLFile(path));
|
||||||
if (!image.isNull()) {
|
if (!image.isNull()) {
|
||||||
|
|
|
@ -85,25 +85,13 @@ shared_ptr<Book> Book::loadFromFile(const ZLFile &file) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
shared_ptr<Book> Book::loadFromJavaBook(JNIEnv *env, jobject javaBook) {
|
shared_ptr<Book> Book::loadFromJavaBook(JNIEnv *env, jobject javaBook) {
|
||||||
jstring javaString;
|
|
||||||
|
|
||||||
jobject javaFile = AndroidUtil::Field_Book_File->value(javaBook);
|
jobject javaFile = AndroidUtil::Field_Book_File->value(javaBook);
|
||||||
javaString = AndroidUtil::Method_ZLFile_getPath->call(javaFile);
|
const std::string path = AndroidUtil::Method_ZLFile_getPath->callForCppString(javaFile);
|
||||||
const std::string path = AndroidUtil::fromJavaString(env, javaString);
|
|
||||||
env->DeleteLocalRef(javaString);
|
|
||||||
env->DeleteLocalRef(javaFile);
|
env->DeleteLocalRef(javaFile);
|
||||||
|
|
||||||
javaString = AndroidUtil::Method_Book_getTitle->call(javaBook);
|
const std::string title = AndroidUtil::Method_Book_getTitle->callForCppString(javaBook);
|
||||||
const std::string title = AndroidUtil::fromJavaString(env, javaString);
|
const std::string language = AndroidUtil::Method_Book_getLanguage->callForCppString(javaBook);
|
||||||
env->DeleteLocalRef(javaString);
|
const std::string encoding = AndroidUtil::Method_Book_getEncodingNoDetection->callForCppString(javaBook);
|
||||||
|
|
||||||
javaString = AndroidUtil::Method_Book_getLanguage->call(javaBook);
|
|
||||||
const std::string language = AndroidUtil::fromJavaString(env, javaString);
|
|
||||||
env->DeleteLocalRef(javaString);
|
|
||||||
|
|
||||||
javaString = AndroidUtil::Method_Book_getEncodingNoDetection->call(javaBook);
|
|
||||||
const std::string encoding = AndroidUtil::fromJavaString(env, javaString);
|
|
||||||
env->DeleteLocalRef(javaString);
|
|
||||||
|
|
||||||
return createBook(ZLFile(path), 0, encoding, language, title);
|
return createBook(ZLFile(path), 0, encoding, language, title);
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ static JavaPrimitiveType FakeString("Ljava/lang/String;");
|
||||||
StringMethod::StringMethod(const JavaClass &cls, const std::string &name, const std::string ¶meters) : Method(cls, name, FakeString, parameters) {
|
StringMethod::StringMethod(const JavaClass &cls, const std::string &name, const std::string ¶meters) : Method(cls, name, FakeString, parameters) {
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring StringMethod::call(jobject base, ...) {
|
jstring StringMethod::callForJavaString(jobject base, ...) {
|
||||||
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "calling StringMethod " + myName);
|
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "calling StringMethod " + myName);
|
||||||
va_list lst;
|
va_list lst;
|
||||||
va_start(lst, base);
|
va_start(lst, base);
|
||||||
|
|
|
@ -181,7 +181,7 @@ class StringMethod : public Method {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
StringMethod(const JavaClass &cls, const std::string &name, const std::string ¶meters);
|
StringMethod(const JavaClass &cls, const std::string &name, const std::string ¶meters);
|
||||||
jstring call(jobject base, ...);
|
jstring callForJavaString(jobject base, ...);
|
||||||
std::string callForCppString(jobject base, ...);
|
std::string callForCppString(jobject base, ...);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -474,7 +474,7 @@ std::string ZLUnicodeUtil::toLower(const std::string &utf8String) {
|
||||||
|
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jstring javaString = AndroidUtil::createJavaString(env, utf8String);
|
jstring javaString = AndroidUtil::createJavaString(env, utf8String);
|
||||||
jstring lowerCased = AndroidUtil::Method_java_lang_String_toLowerCase->call(javaString);
|
jstring lowerCased = AndroidUtil::Method_java_lang_String_toLowerCase->callForJavaString(javaString);
|
||||||
if (javaString == lowerCased) {
|
if (javaString == lowerCased) {
|
||||||
env->DeleteLocalRef(lowerCased);
|
env->DeleteLocalRef(lowerCased);
|
||||||
env->DeleteLocalRef(javaString);
|
env->DeleteLocalRef(javaString);
|
||||||
|
@ -518,7 +518,7 @@ std::string ZLUnicodeUtil::toUpper(const std::string &utf8String) {
|
||||||
|
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jstring javaString = AndroidUtil::createJavaString(env, utf8String);
|
jstring javaString = AndroidUtil::createJavaString(env, utf8String);
|
||||||
jstring upperCased = AndroidUtil::Method_java_lang_String_toUpperCase->call(javaString);
|
jstring upperCased = AndroidUtil::Method_java_lang_String_toUpperCase->callForJavaString(javaString);
|
||||||
if (javaString == upperCased) {
|
if (javaString == upperCased) {
|
||||||
env->DeleteLocalRef(upperCased);
|
env->DeleteLocalRef(upperCased);
|
||||||
env->DeleteLocalRef(javaString);
|
env->DeleteLocalRef(javaString);
|
||||||
|
|
|
@ -67,14 +67,9 @@ void JavaFSDir::collectFiles(std::vector<std::string> &names, bool includeSymlin
|
||||||
const jsize size = env->GetArrayLength(array);
|
const jsize size = env->GetArrayLength(array);
|
||||||
for (jsize i = 0; i < size; ++i) {
|
for (jsize i = 0; i < size; ++i) {
|
||||||
jobject file = env->GetObjectArrayElement(array, i);
|
jobject file = env->GetObjectArrayElement(array, i);
|
||||||
jstring javaPath = AndroidUtil::Method_ZLFile_getPath->call(file);
|
std::string path = AndroidUtil::Method_ZLFile_getPath->callForCppString(file);
|
||||||
env->DeleteLocalRef(file);
|
env->DeleteLocalRef(file);
|
||||||
|
|
||||||
const char *chars = env->GetStringUTFChars(javaPath, 0);
|
|
||||||
std::string path(chars);
|
|
||||||
env->ReleaseStringUTFChars(javaPath, chars);
|
|
||||||
env->DeleteLocalRef(javaPath);
|
|
||||||
|
|
||||||
size_t index = path.rfind('/');
|
size_t index = path.rfind('/');
|
||||||
if (index != std::string::npos) {
|
if (index != std::string::npos) {
|
||||||
path = path.substr(index + 1);
|
path = path.substr(index + 1);
|
||||||
|
|
|
@ -45,11 +45,7 @@ void ZLAndroidLibraryImplementation::init(int &argc, char **&argv) {
|
||||||
std::string ZLibrary::Language() {
|
std::string ZLibrary::Language() {
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jobject locale = AndroidUtil::StaticMethod_java_util_Locale_getDefault->call();
|
jobject locale = AndroidUtil::StaticMethod_java_util_Locale_getDefault->call();
|
||||||
jstring javaLang = AndroidUtil::Method_java_util_Locale_getLanguage->call(locale);
|
std::string lang = AndroidUtil::Method_java_util_Locale_getLanguage->callForCppString(locale);
|
||||||
const char *langData = env->GetStringUTFChars(javaLang, 0);
|
|
||||||
std::string lang(langData);
|
|
||||||
env->ReleaseStringUTFChars(javaLang, langData);
|
|
||||||
env->DeleteLocalRef(javaLang);
|
|
||||||
env->DeleteLocalRef(locale);
|
env->DeleteLocalRef(locale);
|
||||||
return lang;
|
return lang;
|
||||||
}
|
}
|
||||||
|
@ -57,11 +53,7 @@ std::string ZLibrary::Language() {
|
||||||
std::string ZLibrary::Version() {
|
std::string ZLibrary::Version() {
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jobject zlibrary = AndroidUtil::StaticMethod_ZLibrary_Instance->call();
|
jobject zlibrary = AndroidUtil::StaticMethod_ZLibrary_Instance->call();
|
||||||
jstring javaVersion = (jstring)AndroidUtil::Method_ZLibrary_getVersionName->call(zlibrary);
|
std::string version = AndroidUtil::Method_ZLibrary_getVersionName->callForCppString(zlibrary);
|
||||||
const char *versionData = env->GetStringUTFChars(javaVersion, 0);
|
|
||||||
std::string version(versionData);
|
|
||||||
env->ReleaseStringUTFChars(javaVersion, versionData);
|
|
||||||
env->DeleteLocalRef(javaVersion);
|
|
||||||
env->DeleteLocalRef(zlibrary);
|
env->DeleteLocalRef(zlibrary);
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue