mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 10:19:33 +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/Tag.h"
|
||||
|
||||
static shared_ptr<FormatPlugin> findCppPlugin(JNIEnv *env, jobject base) {
|
||||
jstring fileTypeJava = AndroidUtil::Method_NativeFormatPlugin_supportedFileType->call(base);
|
||||
const std::string fileTypeCpp = AndroidUtil::fromJavaString(env, fileTypeJava);
|
||||
env->DeleteLocalRef(fileTypeJava);
|
||||
shared_ptr<FormatPlugin> plugin = PluginCollection::Instance().pluginByType(fileTypeCpp);
|
||||
static shared_ptr<FormatPlugin> findCppPlugin(jobject base) {
|
||||
const std::string fileType = AndroidUtil::Method_NativeFormatPlugin_supportedFileType->callForCppString(base);
|
||||
shared_ptr<FormatPlugin> plugin = PluginCollection::Instance().pluginByType(fileType);
|
||||
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;
|
||||
}
|
||||
|
@ -101,7 +99,7 @@ void fillLanguageAndEncoding(JNIEnv* env, jobject javaBook, Book &book) {
|
|||
|
||||
extern "C"
|
||||
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()) {
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
@ -118,7 +116,7 @@ JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPl
|
|||
|
||||
extern "C"
|
||||
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()) {
|
||||
return;
|
||||
}
|
||||
|
@ -240,7 +238,7 @@ static bool initTOC(JNIEnv *env, jobject javaModel, BookModel &model) {
|
|||
|
||||
extern "C"
|
||||
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()) {
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
@ -287,14 +285,12 @@ JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPl
|
|||
|
||||
extern "C"
|
||||
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()) {
|
||||
return;
|
||||
}
|
||||
|
||||
jstring javaPath = AndroidUtil::Method_ZLFile_getPath->call(file);
|
||||
const std::string path = AndroidUtil::fromJavaString(env, javaPath);
|
||||
env->DeleteLocalRef(javaPath);
|
||||
const std::string path = AndroidUtil::Method_ZLFile_getPath->callForCppString(file);
|
||||
|
||||
shared_ptr<ZLImage> image = plugin->coverImage(ZLFile(path));
|
||||
if (!image.isNull()) {
|
||||
|
|
|
@ -85,25 +85,13 @@ shared_ptr<Book> Book::loadFromFile(const ZLFile &file) {
|
|||
*/
|
||||
|
||||
shared_ptr<Book> Book::loadFromJavaBook(JNIEnv *env, jobject javaBook) {
|
||||
jstring javaString;
|
||||
|
||||
jobject javaFile = AndroidUtil::Field_Book_File->value(javaBook);
|
||||
javaString = AndroidUtil::Method_ZLFile_getPath->call(javaFile);
|
||||
const std::string path = AndroidUtil::fromJavaString(env, javaString);
|
||||
env->DeleteLocalRef(javaString);
|
||||
const std::string path = AndroidUtil::Method_ZLFile_getPath->callForCppString(javaFile);
|
||||
env->DeleteLocalRef(javaFile);
|
||||
|
||||
javaString = AndroidUtil::Method_Book_getTitle->call(javaBook);
|
||||
const std::string title = AndroidUtil::fromJavaString(env, javaString);
|
||||
env->DeleteLocalRef(javaString);
|
||||
|
||||
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);
|
||||
const std::string title = AndroidUtil::Method_Book_getTitle->callForCppString(javaBook);
|
||||
const std::string language = AndroidUtil::Method_Book_getLanguage->callForCppString(javaBook);
|
||||
const std::string encoding = AndroidUtil::Method_Book_getEncodingNoDetection->callForCppString(javaBook);
|
||||
|
||||
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) {
|
||||
}
|
||||
|
||||
jstring StringMethod::call(jobject base, ...) {
|
||||
jstring StringMethod::callForJavaString(jobject base, ...) {
|
||||
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "calling StringMethod " + myName);
|
||||
va_list lst;
|
||||
va_start(lst, base);
|
||||
|
|
|
@ -181,7 +181,7 @@ class StringMethod : public Method {
|
|||
|
||||
public:
|
||||
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, ...);
|
||||
};
|
||||
|
||||
|
|
|
@ -474,7 +474,7 @@ std::string ZLUnicodeUtil::toLower(const std::string &utf8String) {
|
|||
|
||||
JNIEnv *env = AndroidUtil::getEnv();
|
||||
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) {
|
||||
env->DeleteLocalRef(lowerCased);
|
||||
env->DeleteLocalRef(javaString);
|
||||
|
@ -518,7 +518,7 @@ std::string ZLUnicodeUtil::toUpper(const std::string &utf8String) {
|
|||
|
||||
JNIEnv *env = AndroidUtil::getEnv();
|
||||
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) {
|
||||
env->DeleteLocalRef(upperCased);
|
||||
env->DeleteLocalRef(javaString);
|
||||
|
|
|
@ -67,14 +67,9 @@ void JavaFSDir::collectFiles(std::vector<std::string> &names, bool includeSymlin
|
|||
const jsize size = env->GetArrayLength(array);
|
||||
for (jsize i = 0; i < size; ++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);
|
||||
|
||||
const char *chars = env->GetStringUTFChars(javaPath, 0);
|
||||
std::string path(chars);
|
||||
env->ReleaseStringUTFChars(javaPath, chars);
|
||||
env->DeleteLocalRef(javaPath);
|
||||
|
||||
size_t index = path.rfind('/');
|
||||
if (index != std::string::npos) {
|
||||
path = path.substr(index + 1);
|
||||
|
|
|
@ -45,11 +45,7 @@ void ZLAndroidLibraryImplementation::init(int &argc, char **&argv) {
|
|||
std::string ZLibrary::Language() {
|
||||
JNIEnv *env = AndroidUtil::getEnv();
|
||||
jobject locale = AndroidUtil::StaticMethod_java_util_Locale_getDefault->call();
|
||||
jstring javaLang = AndroidUtil::Method_java_util_Locale_getLanguage->call(locale);
|
||||
const char *langData = env->GetStringUTFChars(javaLang, 0);
|
||||
std::string lang(langData);
|
||||
env->ReleaseStringUTFChars(javaLang, langData);
|
||||
env->DeleteLocalRef(javaLang);
|
||||
std::string lang = AndroidUtil::Method_java_util_Locale_getLanguage->callForCppString(locale);
|
||||
env->DeleteLocalRef(locale);
|
||||
return lang;
|
||||
}
|
||||
|
@ -57,11 +53,7 @@ std::string ZLibrary::Language() {
|
|||
std::string ZLibrary::Version() {
|
||||
JNIEnv *env = AndroidUtil::getEnv();
|
||||
jobject zlibrary = AndroidUtil::StaticMethod_ZLibrary_Instance->call();
|
||||
jstring javaVersion = (jstring)AndroidUtil::Method_ZLibrary_getVersionName->call(zlibrary);
|
||||
const char *versionData = env->GetStringUTFChars(javaVersion, 0);
|
||||
std::string version(versionData);
|
||||
env->ReleaseStringUTFChars(javaVersion, versionData);
|
||||
env->DeleteLocalRef(javaVersion);
|
||||
std::string version = AndroidUtil::Method_ZLibrary_getVersionName->callForCppString(zlibrary);
|
||||
env->DeleteLocalRef(zlibrary);
|
||||
return version;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue