mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-03 09:49:19 +02:00
StaticMethod extends Member
This commit is contained in:
parent
266249bd6f
commit
c4618e56a2
8 changed files with 26 additions and 45 deletions
|
@ -72,9 +72,7 @@ void PluginCollection::deleteInstance() {
|
||||||
|
|
||||||
PluginCollection::PluginCollection() {
|
PluginCollection::PluginCollection() {
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jobject instance = AndroidUtil::StaticMethod_PluginCollection_Instance->call(
|
jobject instance = AndroidUtil::StaticMethod_PluginCollection_Instance->call();
|
||||||
AndroidUtil::Class_PluginCollection->j()
|
|
||||||
);
|
|
||||||
myJavaInstance = env->NewGlobalRef(instance);
|
myJavaInstance = env->NewGlobalRef(instance);
|
||||||
env->DeleteLocalRef(instance);
|
env->DeleteLocalRef(instance);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ Library::~Library() {
|
||||||
|
|
||||||
std::string Library::cacheDirectory() const {
|
std::string Library::cacheDirectory() const {
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jstring res = (jstring)AndroidUtil::StaticMethod_Paths_cacheDirectory->call(AndroidUtil::Class_Paths->j());
|
jstring res = (jstring)AndroidUtil::StaticMethod_Paths_cacheDirectory->call();
|
||||||
const char *data = env->GetStringUTFChars(res, 0);
|
const char *data = env->GetStringUTFChars(res, 0);
|
||||||
std::string str(data);
|
std::string str(data);
|
||||||
env->ReleaseStringUTFChars(res, data);
|
env->ReleaseStringUTFChars(res, data);
|
||||||
|
|
|
@ -138,7 +138,7 @@ jobject Tag::javaTag(JNIEnv *env) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
jobject javaName = env->NewStringUTF(myName.c_str());
|
jobject javaName = env->NewStringUTF(myName.c_str());
|
||||||
jobject tag = AndroidUtil::StaticMethod_Tag_getTag->call(AndroidUtil::Class_Tag->j(), parentTag, javaName);
|
jobject tag = AndroidUtil::StaticMethod_Tag_getTag->call(parentTag, javaName);
|
||||||
myJavaTag = env->NewGlobalRef(tag);
|
myJavaTag = env->NewGlobalRef(tag);
|
||||||
env->DeleteLocalRef(tag);
|
env->DeleteLocalRef(tag);
|
||||||
env->DeleteLocalRef(javaName);
|
env->DeleteLocalRef(javaName);
|
||||||
|
|
|
@ -134,7 +134,7 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
CHECK_NULL( MID_java_util_Collection_toArray = env->GetMethodID(Class_java_util_Collection->j(), "toArray", "()[Ljava/lang/Object;") );
|
CHECK_NULL( MID_java_util_Collection_toArray = env->GetMethodID(Class_java_util_Collection->j(), "toArray", "()[Ljava/lang/Object;") );
|
||||||
|
|
||||||
Class_java_util_Locale = new JavaClass(env, "java/util/Locale");
|
Class_java_util_Locale = new JavaClass(env, "java/util/Locale");
|
||||||
StaticMethod_java_util_Locale_getDefault = new StaticObjectMethod(env, Class_java_util_Locale->j(), "getDefault", "java/util/Locale", "()");
|
StaticMethod_java_util_Locale_getDefault = new StaticObjectMethod(*Class_java_util_Locale, "getDefault", "java/util/Locale", "()");
|
||||||
Method_java_util_Locale_getLanguage = new StringMethod(*Class_java_util_Locale, "getLanguage", "()");
|
Method_java_util_Locale_getLanguage = new StringMethod(*Class_java_util_Locale, "getLanguage", "()");
|
||||||
|
|
||||||
Class_java_io_InputStream = new JavaClass(env, "java/io/InputStream");
|
Class_java_io_InputStream = new JavaClass(env, "java/io/InputStream");
|
||||||
|
@ -143,7 +143,7 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
Method_java_io_InputStream_skip = new LongMethod(env, Class_java_io_InputStream->j(), "skip", "(J)");
|
Method_java_io_InputStream_skip = new LongMethod(env, Class_java_io_InputStream->j(), "skip", "(J)");
|
||||||
|
|
||||||
Class_ZLibrary = new JavaClass(env, "org/geometerplus/zlibrary/core/library/ZLibrary");
|
Class_ZLibrary = new JavaClass(env, "org/geometerplus/zlibrary/core/library/ZLibrary");
|
||||||
StaticMethod_ZLibrary_Instance = new StaticObjectMethod(env, Class_ZLibrary->j(), "Instance", "org/geometerplus/zlibrary/core/library/ZLibrary", "()");
|
StaticMethod_ZLibrary_Instance = new StaticObjectMethod(*Class_ZLibrary, "Instance", "org/geometerplus/zlibrary/core/library/ZLibrary", "()");
|
||||||
Method_ZLibrary_getVersionName = new StringMethod(*Class_ZLibrary, "getVersionName", "()");
|
Method_ZLibrary_getVersionName = new StringMethod(*Class_ZLibrary, "getVersionName", "()");
|
||||||
|
|
||||||
Class_NativeFormatPlugin = new JavaClass(env, "org/geometerplus/fbreader/formats/NativeFormatPlugin");
|
Class_NativeFormatPlugin = new JavaClass(env, "org/geometerplus/fbreader/formats/NativeFormatPlugin");
|
||||||
|
@ -151,7 +151,7 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
Method_NativeFormatPlugin_supportedFileType = new StringMethod(*Class_NativeFormatPlugin, "supportedFileType", "()");
|
Method_NativeFormatPlugin_supportedFileType = new StringMethod(*Class_NativeFormatPlugin, "supportedFileType", "()");
|
||||||
|
|
||||||
Class_PluginCollection = new JavaClass(env, "org/geometerplus/fbreader/formats/PluginCollection");
|
Class_PluginCollection = new JavaClass(env, "org/geometerplus/fbreader/formats/PluginCollection");
|
||||||
StaticMethod_PluginCollection_Instance = new StaticObjectMethod(env, Class_PluginCollection->j(), "Instance", "org/geometerplus/fbreader/formats/PluginCollection", "()");
|
StaticMethod_PluginCollection_Instance = new StaticObjectMethod(*Class_PluginCollection, "Instance", "org/geometerplus/fbreader/formats/PluginCollection", "()");
|
||||||
|
|
||||||
Class_Encoding = new JavaClass(env, "org/geometerplus/zlibrary/core/encodings/Encoding");
|
Class_Encoding = new JavaClass(env, "org/geometerplus/zlibrary/core/encodings/Encoding");
|
||||||
Method_Encoding_createConverter = new ObjectMethod(env, Class_Encoding->j(), "createConverter", "org/geometerplus/zlibrary/core/encodings/EncodingConverter", "()");
|
Method_Encoding_createConverter = new ObjectMethod(env, Class_Encoding->j(), "createConverter", "org/geometerplus/zlibrary/core/encodings/EncodingConverter", "()");
|
||||||
|
@ -162,13 +162,13 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
Method_EncodingConverter_reset = new VoidMethod(env, Class_EncodingConverter->j(), "reset", "()");
|
Method_EncodingConverter_reset = new VoidMethod(env, Class_EncodingConverter->j(), "reset", "()");
|
||||||
|
|
||||||
Class_JavaEncodingCollection = new JavaClass(env, "org/geometerplus/zlibrary/core/encodings/JavaEncodingCollection");
|
Class_JavaEncodingCollection = new JavaClass(env, "org/geometerplus/zlibrary/core/encodings/JavaEncodingCollection");
|
||||||
StaticMethod_JavaEncodingCollection_Instance = new StaticObjectMethod(env, Class_JavaEncodingCollection->j(), "Instance", "org/geometerplus/zlibrary/core/encodings/JavaEncodingCollection", "()");
|
StaticMethod_JavaEncodingCollection_Instance = new StaticObjectMethod(*Class_JavaEncodingCollection, "Instance", "org/geometerplus/zlibrary/core/encodings/JavaEncodingCollection", "()");
|
||||||
Method_JavaEncodingCollection_getEncoding_String = new ObjectMethod(env, Class_JavaEncodingCollection->j(), "getEncoding", "org/geometerplus/zlibrary/core/encodings/Encoding", "(Ljava/lang/String;)");
|
Method_JavaEncodingCollection_getEncoding_String = new ObjectMethod(env, Class_JavaEncodingCollection->j(), "getEncoding", "org/geometerplus/zlibrary/core/encodings/Encoding", "(Ljava/lang/String;)");
|
||||||
Method_JavaEncodingCollection_getEncoding_int = new ObjectMethod(env, Class_JavaEncodingCollection->j(), "getEncoding", "org/geometerplus/zlibrary/core/encodings/Encoding", "(I)");
|
Method_JavaEncodingCollection_getEncoding_int = new ObjectMethod(env, Class_JavaEncodingCollection->j(), "getEncoding", "org/geometerplus/zlibrary/core/encodings/Encoding", "(I)");
|
||||||
Method_JavaEncodingCollection_providesConverterFor = new BooleanMethod(env, Class_JavaEncodingCollection->j(), "providesConverterFor", "(Ljava/lang/String;)");
|
Method_JavaEncodingCollection_providesConverterFor = new BooleanMethod(env, Class_JavaEncodingCollection->j(), "providesConverterFor", "(Ljava/lang/String;)");
|
||||||
|
|
||||||
Class_ZLFile = new JavaClass(env, "org/geometerplus/zlibrary/core/filesystem/ZLFile");
|
Class_ZLFile = new JavaClass(env, "org/geometerplus/zlibrary/core/filesystem/ZLFile");
|
||||||
StaticMethod_ZLFile_createFileByPath = new StaticObjectMethod(env, Class_ZLFile->j(), "createFileByPath", "org/geometerplus/zlibrary/core/filesystem/ZLFile", "(Ljava/lang/String;)");
|
StaticMethod_ZLFile_createFileByPath = new StaticObjectMethod(*Class_ZLFile, "createFileByPath", "org/geometerplus/zlibrary/core/filesystem/ZLFile", "(Ljava/lang/String;)");
|
||||||
Method_ZLFile_children = new ObjectMethod(env, Class_ZLFile->j(), "children", "java/util/List", "()");
|
Method_ZLFile_children = new ObjectMethod(env, Class_ZLFile->j(), "children", "java/util/List", "()");
|
||||||
Method_ZLFile_exists = new BooleanMethod(env, Class_ZLFile->j(), "exists", "()");
|
Method_ZLFile_exists = new BooleanMethod(env, Class_ZLFile->j(), "exists", "()");
|
||||||
Method_ZLFile_isDirectory = new BooleanMethod(env, Class_ZLFile->j(), "isDirectory", "()");
|
Method_ZLFile_isDirectory = new BooleanMethod(env, Class_ZLFile->j(), "isDirectory", "()");
|
||||||
|
@ -180,7 +180,7 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
Constructor_ZLFileImage = new Constructor(*Class_ZLFileImage, "(Ljava/lang/String;Lorg/geometerplus/zlibrary/core/filesystem/ZLFile;Ljava/lang/String;II)V");
|
Constructor_ZLFileImage = new Constructor(*Class_ZLFileImage, "(Ljava/lang/String;Lorg/geometerplus/zlibrary/core/filesystem/ZLFile;Ljava/lang/String;II)V");
|
||||||
|
|
||||||
Class_Paths = new JavaClass(env, "org/geometerplus/fbreader/Paths");
|
Class_Paths = new JavaClass(env, "org/geometerplus/fbreader/Paths");
|
||||||
StaticMethod_Paths_cacheDirectory = new StaticObjectMethod(env, Class_Paths->j(), "cacheDirectory", "java/lang/String", "()");
|
StaticMethod_Paths_cacheDirectory = new StaticObjectMethod(*Class_Paths, "cacheDirectory", "java/lang/String", "()");
|
||||||
|
|
||||||
Class_Book = new JavaClass(env, "org/geometerplus/fbreader/library/Book");
|
Class_Book = new JavaClass(env, "org/geometerplus/fbreader/library/Book");
|
||||||
CHECK_NULL( FID_Book_File = env->GetFieldID(Class_Book->j(), "File", "Lorg/geometerplus/zlibrary/core/filesystem/ZLFile;") );
|
CHECK_NULL( FID_Book_File = env->GetFieldID(Class_Book->j(), "File", "Lorg/geometerplus/zlibrary/core/filesystem/ZLFile;") );
|
||||||
|
@ -196,7 +196,7 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
Method_Book_save = new BooleanMethod(env, Class_Book->j(), "save", "()");
|
Method_Book_save = new BooleanMethod(env, Class_Book->j(), "save", "()");
|
||||||
|
|
||||||
Class_Tag = new JavaClass(env, "org/geometerplus/fbreader/library/Tag");
|
Class_Tag = new JavaClass(env, "org/geometerplus/fbreader/library/Tag");
|
||||||
StaticMethod_Tag_getTag = new StaticObjectMethod(env, Class_Tag->j(), "getTag", "org/geometerplus/fbreader/library/Tag", "(Lorg/geometerplus/fbreader/library/Tag;Ljava/lang/String;)");
|
StaticMethod_Tag_getTag = new StaticObjectMethod(*Class_Tag, "getTag", "org/geometerplus/fbreader/library/Tag", "(Lorg/geometerplus/fbreader/library/Tag;Ljava/lang/String;)");
|
||||||
|
|
||||||
Class_NativeBookModel = new JavaClass(env, "org/geometerplus/fbreader/bookmodel/NativeBookModel");
|
Class_NativeBookModel = new JavaClass(env, "org/geometerplus/fbreader/bookmodel/NativeBookModel");
|
||||||
CHECK_NULL( FID_NativeBookModel_Book = env->GetFieldID(Class_NativeBookModel->j(), "Book", "Lorg/geometerplus/fbreader/library/Book;") );
|
CHECK_NULL( FID_NativeBookModel_Book = env->GetFieldID(Class_NativeBookModel->j(), "Book", "Lorg/geometerplus/fbreader/library/Book;") );
|
||||||
|
@ -217,7 +217,7 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
|
|
||||||
jobject AndroidUtil::createJavaFile(JNIEnv *env, const std::string &path) {
|
jobject AndroidUtil::createJavaFile(JNIEnv *env, const std::string &path) {
|
||||||
jstring javaPath = env->NewStringUTF(path.c_str());
|
jstring javaPath = env->NewStringUTF(path.c_str());
|
||||||
jobject javaFile = StaticMethod_ZLFile_createFileByPath->call(Class_ZLFile->j(), javaPath);
|
jobject javaFile = StaticMethod_ZLFile_createFileByPath->call(javaPath);
|
||||||
env->DeleteLocalRef(javaPath);
|
env->DeleteLocalRef(javaPath);
|
||||||
return javaFile;
|
return javaFile;
|
||||||
}
|
}
|
||||||
|
@ -298,7 +298,6 @@ void AndroidUtil::throwRuntimeException(JNIEnv *env, const std::string &message)
|
||||||
void AndroidUtil::throwBookReadingException(const std::string &resourceId, const ZLFile &file) {
|
void AndroidUtil::throwBookReadingException(const std::string &resourceId, const ZLFile &file) {
|
||||||
JNIEnv *env = getEnv();
|
JNIEnv *env = getEnv();
|
||||||
env->CallStaticVoidMethod(
|
env->CallStaticVoidMethod(
|
||||||
Class_BookReadingException->j(),
|
|
||||||
StaticMethod_BookReadingException_throwForFile,
|
StaticMethod_BookReadingException_throwForFile,
|
||||||
AndroidUtil::createJavaString(env, resourceId),
|
AndroidUtil::createJavaString(env, resourceId),
|
||||||
AndroidUtil::createJavaFile(env, file.path())
|
AndroidUtil::createJavaFile(env, file.path())
|
||||||
|
|
|
@ -34,6 +34,7 @@ JavaClass::~JavaClass() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Member::Member(const JavaClass &cls) : myClass(cls) {
|
Member::Member(const JavaClass &cls) : myClass(cls) {
|
||||||
|
//ZLLogger::Instance().registerClass(JNI_LOGGER_CLASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
Member::~Member() {
|
Member::~Member() {
|
||||||
|
@ -58,7 +59,6 @@ Method::Method(JNIEnv *env, jclass cls, const std::string &name, const std::stri
|
||||||
}
|
}
|
||||||
|
|
||||||
Method::Method(const JavaClass &cls, const std::string &name, const std::string &signature) : myName(name) {
|
Method::Method(const JavaClass &cls, const std::string &name, const std::string &signature) : myName(name) {
|
||||||
//ZLLogger::Instance().registerClass(JNI_LOGGER_CLASS);
|
|
||||||
myEnv = cls.myEnv;
|
myEnv = cls.myEnv;
|
||||||
myId = myEnv->GetMethodID(cls.myClass, name.c_str(), signature.c_str());
|
myId = myEnv->GetMethodID(cls.myClass, name.c_str(), signature.c_str());
|
||||||
}
|
}
|
||||||
|
@ -66,10 +66,8 @@ Method::Method(const JavaClass &cls, const std::string &name, const std::string
|
||||||
Method::~Method() {
|
Method::~Method() {
|
||||||
}
|
}
|
||||||
|
|
||||||
StaticMethod::StaticMethod(JNIEnv *env, jclass cls, const std::string &name, const std::string &signature) : myName(name) {
|
StaticMethod::StaticMethod(const JavaClass &cls, const std::string &name, const std::string &signature) : Member(cls), myName(name) {
|
||||||
//ZLLogger::Instance().registerClass(JNI_LOGGER_CLASS);
|
myId = env().GetStaticMethodID(jClass(), name.c_str(), signature.c_str());
|
||||||
myEnv = env;
|
|
||||||
myId = env->GetStaticMethodID(cls, name.c_str(), signature.c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
StaticMethod::~StaticMethod() {
|
StaticMethod::~StaticMethod() {
|
||||||
|
@ -155,14 +153,14 @@ jobject ObjectMethod::call(jobject base, ...) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
StaticObjectMethod::StaticObjectMethod(JNIEnv *env, jclass cls, const std::string &name, const std::string &returnType, const std::string &signature) : StaticMethod(env, cls, name, signature + "L" + returnType + ";") {
|
StaticObjectMethod::StaticObjectMethod(const JavaClass &cls, const std::string &name, const std::string &returnType, const std::string &signature) : StaticMethod(cls, name, signature + "L" + returnType + ";") {
|
||||||
}
|
}
|
||||||
|
|
||||||
jobject StaticObjectMethod::call(jclass cls, ...) {
|
jobject StaticObjectMethod::call(...) {
|
||||||
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "calling StaticObjectMethod " + myName);
|
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "calling StaticObjectMethod " + myName);
|
||||||
va_list lst;
|
va_list lst;
|
||||||
va_start(lst, cls);
|
va_start(lst, this);
|
||||||
jobject result = myEnv->CallStaticObjectMethodV(cls, myId, lst);
|
jobject result = env().CallStaticObjectMethodV(jClass(), myId, lst);
|
||||||
va_end(lst);
|
va_end(lst);
|
||||||
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "finished StaticObjectMethod " + myName);
|
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "finished StaticObjectMethod " + myName);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -42,7 +42,6 @@ private:
|
||||||
|
|
||||||
friend class Member;
|
friend class Member;
|
||||||
friend class Method;
|
friend class Method;
|
||||||
friend class StaticMethod;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Member {
|
class Member {
|
||||||
|
@ -90,19 +89,14 @@ protected:
|
||||||
jmethodID myId;
|
jmethodID myId;
|
||||||
};
|
};
|
||||||
|
|
||||||
class StaticMethod {
|
class StaticMethod : public Member {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
StaticMethod(JNIEnv *env, jclass cls, const std::string &name, const std::string &signature);
|
StaticMethod(const JavaClass &cls, const std::string &name, const std::string &signature);
|
||||||
virtual ~StaticMethod();
|
virtual ~StaticMethod();
|
||||||
|
|
||||||
private:
|
|
||||||
StaticMethod(const StaticMethod&);
|
|
||||||
const StaticMethod &operator = (const StaticMethod&);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const std::string myName;
|
const std::string myName;
|
||||||
JNIEnv *myEnv;
|
|
||||||
jmethodID myId;
|
jmethodID myId;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -152,8 +146,8 @@ public:
|
||||||
class StaticObjectMethod : public StaticMethod {
|
class StaticObjectMethod : public StaticMethod {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
StaticObjectMethod(JNIEnv *env, jclass cls, const std::string &name, const std::string &returnType, const std::string &signature);
|
StaticObjectMethod(const JavaClass &cls, const std::string &name, const std::string &returnType, const std::string &signature);
|
||||||
jobject call(jclass cls, ...);
|
jobject call(...);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline jclass JavaClass::j() const { return myClass; }
|
inline jclass JavaClass::j() const { return myClass; }
|
||||||
|
|
|
@ -49,9 +49,7 @@ bool JavaEncodingConverterProvider::providesConverter(const std::string &encodin
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jobject collection = AndroidUtil::StaticMethod_JavaEncodingCollection_Instance->call(
|
jobject collection = AndroidUtil::StaticMethod_JavaEncodingCollection_Instance->call();
|
||||||
AndroidUtil::Class_JavaEncodingCollection->j()
|
|
||||||
);
|
|
||||||
jstring encodingName = AndroidUtil::createJavaString(env, encoding);
|
jstring encodingName = AndroidUtil::createJavaString(env, encoding);
|
||||||
jboolean result = AndroidUtil::Method_JavaEncodingCollection_providesConverterFor->call(collection, encodingName);
|
jboolean result = AndroidUtil::Method_JavaEncodingCollection_providesConverterFor->call(collection, encodingName);
|
||||||
env->DeleteLocalRef(encodingName);
|
env->DeleteLocalRef(encodingName);
|
||||||
|
@ -65,9 +63,7 @@ shared_ptr<ZLEncodingConverter> JavaEncodingConverterProvider::createConverter(c
|
||||||
|
|
||||||
JavaEncodingConverter::JavaEncodingConverter(const std::string &encoding) {
|
JavaEncodingConverter::JavaEncodingConverter(const std::string &encoding) {
|
||||||
JNIEnv *env = AndroidUtil::getEnv();
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
jobject collection = AndroidUtil::StaticMethod_JavaEncodingCollection_Instance->call(
|
jobject collection = AndroidUtil::StaticMethod_JavaEncodingCollection_Instance->call();
|
||||||
AndroidUtil::Class_JavaEncodingCollection->j()
|
|
||||||
);
|
|
||||||
jstring encodingName = AndroidUtil::createJavaString(env, encoding);
|
jstring encodingName = AndroidUtil::createJavaString(env, encoding);
|
||||||
jobject javaEncoding = AndroidUtil::Method_JavaEncodingCollection_getEncoding_String->call(collection, encodingName);
|
jobject javaEncoding = AndroidUtil::Method_JavaEncodingCollection_getEncoding_String->call(collection, encodingName);
|
||||||
myJavaConverter = AndroidUtil::Method_Encoding_createConverter->call(javaEncoding);
|
myJavaConverter = AndroidUtil::Method_Encoding_createConverter->call(javaEncoding);
|
||||||
|
|
|
@ -44,9 +44,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();
|
||||||
AndroidUtil::Class_java_util_Locale->j()
|
|
||||||
);
|
|
||||||
jstring javaLang = (jstring)AndroidUtil::Method_java_util_Locale_getLanguage->call(locale);
|
jstring javaLang = (jstring)AndroidUtil::Method_java_util_Locale_getLanguage->call(locale);
|
||||||
const char *langData = env->GetStringUTFChars(javaLang, 0);
|
const char *langData = env->GetStringUTFChars(javaLang, 0);
|
||||||
std::string lang(langData);
|
std::string lang(langData);
|
||||||
|
@ -58,9 +56,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();
|
||||||
AndroidUtil::Class_ZLibrary->j()
|
|
||||||
);
|
|
||||||
jstring javaVersion = (jstring)AndroidUtil::Method_ZLibrary_getVersionName->call(zlibrary);
|
jstring javaVersion = (jstring)AndroidUtil::Method_ZLibrary_getVersionName->call(zlibrary);
|
||||||
const char *versionData = env->GetStringUTFChars(javaVersion, 0);
|
const char *versionData = env->GetStringUTFChars(javaVersion, 0);
|
||||||
std::string version(versionData);
|
std::string version(versionData);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue