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

code uniformization

This commit is contained in:
Nikolay Pultsin 2012-04-07 13:39:18 +01:00
parent ac33d013fc
commit bfcdbe9808
7 changed files with 20 additions and 49 deletions

View file

@ -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()) {

View file

@ -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);
}

View file

@ -174,7 +174,7 @@ static JavaPrimitiveType FakeString("Ljava/lang/String;");
StringMethod::StringMethod(const JavaClass &cls, const std::string &name, const std::string &parameters) : 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);

View file

@ -181,7 +181,7 @@ class StringMethod : public Method {
public:
StringMethod(const JavaClass &cls, const std::string &name, const std::string &parameters);
jstring call(jobject base, ...);
jstring callForJavaString(jobject base, ...);
std::string callForCppString(jobject base, ...);
};

View file

@ -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);

View file

@ -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);

View file

@ -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;
}