mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-03 09:49:19 +02:00
fixed Logger issues
This commit is contained in:
parent
0268ebfe47
commit
a9610d892c
4 changed files with 33 additions and 33 deletions
|
@ -21,9 +21,11 @@
|
||||||
|
|
||||||
JavaVM *AndroidUtil::ourJavaVM = 0;
|
JavaVM *AndroidUtil::ourJavaVM = 0;
|
||||||
|
|
||||||
|
const char * const AndroidUtil::Class_java_lang_System = "java/lang/System";
|
||||||
const char * const AndroidUtil::Class_java_util_Collection = "java/util/Collection";
|
const char * const AndroidUtil::Class_java_util_Collection = "java/util/Collection";
|
||||||
const char * const AndroidUtil::Class_java_util_Locale = "java/util/Locale";
|
const char * const AndroidUtil::Class_java_util_Locale = "java/util/Locale";
|
||||||
const char * const AndroidUtil::Class_java_io_InputStream = "java/io/InputStream";
|
const char * const AndroidUtil::Class_java_io_InputStream = "java/io/InputStream";
|
||||||
|
const char * const AndroidUtil::Class_java_io_PrintStream = "java/io/PrintStream";
|
||||||
const char * const AndroidUtil::Class_ZLibrary = "org/geometerplus/zlibrary/core/library/ZLibrary";
|
const char * const AndroidUtil::Class_ZLibrary = "org/geometerplus/zlibrary/core/library/ZLibrary";
|
||||||
const char * const AndroidUtil::Class_NativeFormatPlugin = "org/geometerplus/fbreader/formats/NativeFormatPlugin";
|
const char * const AndroidUtil::Class_NativeFormatPlugin = "org/geometerplus/fbreader/formats/NativeFormatPlugin";
|
||||||
const char * const AndroidUtil::Class_PluginCollection = "org/geometerplus/fbreader/formats/PluginCollection";
|
const char * const AndroidUtil::Class_PluginCollection = "org/geometerplus/fbreader/formats/PluginCollection";
|
||||||
|
@ -32,6 +34,8 @@ const char * const AndroidUtil::Class_ZLFile = "org/geometerplus/zlibrary/core/f
|
||||||
const char * const AndroidUtil::Class_Book = "org/geometerplus/fbreader/library/Book";
|
const char * const AndroidUtil::Class_Book = "org/geometerplus/fbreader/library/Book";
|
||||||
const char * const AndroidUtil::Class_Tag = "org/geometerplus/fbreader/library/Tag";
|
const char * const AndroidUtil::Class_Tag = "org/geometerplus/fbreader/library/Tag";
|
||||||
|
|
||||||
|
jobject AndroidUtil::OBJECT_java_lang_System_err;
|
||||||
|
|
||||||
jmethodID AndroidUtil::MID_java_util_Collection_toArray;
|
jmethodID AndroidUtil::MID_java_util_Collection_toArray;
|
||||||
|
|
||||||
jmethodID AndroidUtil::SMID_java_util_Locale_getDefault;
|
jmethodID AndroidUtil::SMID_java_util_Locale_getDefault;
|
||||||
|
@ -41,6 +45,8 @@ jmethodID AndroidUtil::MID_java_io_InputStream_close;
|
||||||
jmethodID AndroidUtil::MID_java_io_InputStream_read;
|
jmethodID AndroidUtil::MID_java_io_InputStream_read;
|
||||||
jmethodID AndroidUtil::MID_java_io_InputStream_skip;
|
jmethodID AndroidUtil::MID_java_io_InputStream_skip;
|
||||||
|
|
||||||
|
jmethodID AndroidUtil::MID_java_io_PrintStream_println;
|
||||||
|
|
||||||
jmethodID AndroidUtil::SMID_ZLibrary_Instance;
|
jmethodID AndroidUtil::SMID_ZLibrary_Instance;
|
||||||
jmethodID AndroidUtil::MID_ZLibrary_getVersionName;
|
jmethodID AndroidUtil::MID_ZLibrary_getVersionName;
|
||||||
|
|
||||||
|
@ -86,6 +92,12 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
JNIEnv *env = getEnv();
|
JNIEnv *env = getEnv();
|
||||||
jclass cls;
|
jclass cls;
|
||||||
|
|
||||||
|
CHECK_NULL( cls = env->FindClass(Class_java_lang_System) );
|
||||||
|
jfieldID field;
|
||||||
|
CHECK_NULL( field = env->GetStaticFieldID(cls, "err", "Ljava/io/PrintStream;") );
|
||||||
|
CHECK_NULL( OBJECT_java_lang_System_err = env->GetStaticObjectField(cls, field) );
|
||||||
|
env->DeleteLocalRef(cls);
|
||||||
|
|
||||||
CHECK_NULL( cls = env->FindClass(Class_java_util_Collection) );
|
CHECK_NULL( cls = env->FindClass(Class_java_util_Collection) );
|
||||||
CHECK_NULL( MID_java_util_Collection_toArray = env->GetMethodID(cls, "toArray", "()[Ljava/lang/Object;") );
|
CHECK_NULL( MID_java_util_Collection_toArray = env->GetMethodID(cls, "toArray", "()[Ljava/lang/Object;") );
|
||||||
//CHECK_NULL( MID_java_util_Collection_add = env->GetMethodID(cls, "add", "(Ljava/lang/Object;)Z") );
|
//CHECK_NULL( MID_java_util_Collection_add = env->GetMethodID(cls, "add", "(Ljava/lang/Object;)Z") );
|
||||||
|
@ -102,6 +114,10 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
||||||
CHECK_NULL( MID_java_io_InputStream_skip = env->GetMethodID(cls, "skip", "(J)J") );
|
CHECK_NULL( MID_java_io_InputStream_skip = env->GetMethodID(cls, "skip", "(J)J") );
|
||||||
env->DeleteLocalRef(cls);
|
env->DeleteLocalRef(cls);
|
||||||
|
|
||||||
|
CHECK_NULL( cls = env->FindClass(Class_java_io_PrintStream) );
|
||||||
|
CHECK_NULL( MID_java_io_PrintStream_println = env->GetMethodID(cls, "println", "(Ljava/lang/String;)V") );
|
||||||
|
env->DeleteLocalRef(cls);
|
||||||
|
|
||||||
CHECK_NULL( cls = env->FindClass(Class_ZLibrary) );
|
CHECK_NULL( cls = env->FindClass(Class_ZLibrary) );
|
||||||
CHECK_NULL( SMID_ZLibrary_Instance = env->GetStaticMethodID(cls, "Instance", "()Lorg/geometerplus/zlibrary/core/library/ZLibrary;") );
|
CHECK_NULL( SMID_ZLibrary_Instance = env->GetStaticMethodID(cls, "Instance", "()Lorg/geometerplus/zlibrary/core/library/ZLibrary;") );
|
||||||
CHECK_NULL( MID_ZLibrary_getVersionName = env->GetMethodID(cls, "getVersionName", "()Ljava/lang/String;") );
|
CHECK_NULL( MID_ZLibrary_getVersionName = env->GetMethodID(cls, "getVersionName", "()Ljava/lang/String;") );
|
||||||
|
|
|
@ -30,9 +30,11 @@ private:
|
||||||
static JavaVM *ourJavaVM;
|
static JavaVM *ourJavaVM;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static const char * const Class_java_lang_System;
|
||||||
static const char * const Class_java_util_Collection;
|
static const char * const Class_java_util_Collection;
|
||||||
static const char * const Class_java_util_Locale;
|
static const char * const Class_java_util_Locale;
|
||||||
static const char * const Class_java_io_InputStream;
|
static const char * const Class_java_io_InputStream;
|
||||||
|
static const char * const Class_java_io_PrintStream;
|
||||||
static const char * const Class_ZLibrary;
|
static const char * const Class_ZLibrary;
|
||||||
static const char * const Class_ZLFile;
|
static const char * const Class_ZLFile;
|
||||||
static const char * const Class_NativeFormatPlugin;
|
static const char * const Class_NativeFormatPlugin;
|
||||||
|
@ -41,6 +43,8 @@ public:
|
||||||
static const char * const Class_Book;
|
static const char * const Class_Book;
|
||||||
static const char * const Class_Tag;
|
static const char * const Class_Tag;
|
||||||
|
|
||||||
|
static jobject OBJECT_java_lang_System_err;
|
||||||
|
|
||||||
static jmethodID MID_java_util_Collection_toArray;
|
static jmethodID MID_java_util_Collection_toArray;
|
||||||
|
|
||||||
static jmethodID SMID_java_util_Locale_getDefault;
|
static jmethodID SMID_java_util_Locale_getDefault;
|
||||||
|
@ -50,6 +54,8 @@ public:
|
||||||
static jmethodID MID_java_io_InputStream_read;
|
static jmethodID MID_java_io_InputStream_read;
|
||||||
static jmethodID MID_java_io_InputStream_skip;
|
static jmethodID MID_java_io_InputStream_skip;
|
||||||
|
|
||||||
|
static jmethodID MID_java_io_PrintStream_println;
|
||||||
|
|
||||||
static jmethodID SMID_ZLibrary_Instance;
|
static jmethodID SMID_ZLibrary_Instance;
|
||||||
static jmethodID MID_ZLibrary_getVersionName;
|
static jmethodID MID_ZLibrary_getVersionName;
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,17 @@ const std::string ZLLogger::DEFAULT_CLASS;
|
||||||
|
|
||||||
ZLLogger *ZLLogger::ourInstance = 0;
|
ZLLogger *ZLLogger::ourInstance = 0;
|
||||||
|
|
||||||
|
static void printInternal(const std::string &message) {
|
||||||
|
JNIEnv *env = AndroidUtil::getEnv();
|
||||||
|
jstring javaMessage = AndroidUtil::createJavaString(env, message);
|
||||||
|
env->CallVoidMethod(
|
||||||
|
AndroidUtil::OBJECT_java_lang_System_err,
|
||||||
|
AndroidUtil::MID_java_io_PrintStream_println,
|
||||||
|
javaMessage
|
||||||
|
);
|
||||||
|
env->DeleteLocalRef(javaMessage);
|
||||||
|
}
|
||||||
|
|
||||||
ZLLogger &ZLLogger::Instance() {
|
ZLLogger &ZLLogger::Instance() {
|
||||||
if (ourInstance == 0) {
|
if (ourInstance == 0) {
|
||||||
ourInstance = new ZLLogger();
|
ourInstance = new ZLLogger();
|
||||||
|
@ -33,14 +44,6 @@ ZLLogger &ZLLogger::Instance() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ZLLogger::ZLLogger() {
|
ZLLogger::ZLLogger() {
|
||||||
myEnv = AndroidUtil::getEnv();
|
|
||||||
mySystemErr = 0;
|
|
||||||
myPrintStreamClass = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ZLLogger::~ZLLogger() {
|
|
||||||
myEnv->DeleteLocalRef(mySystemErr);
|
|
||||||
myEnv->DeleteLocalRef(myPrintStreamClass);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZLLogger::registerClass(const std::string &className) {
|
void ZLLogger::registerClass(const std::string &className) {
|
||||||
|
@ -63,20 +66,3 @@ void ZLLogger::print(const std::string &className, const std::string &message) c
|
||||||
void ZLLogger::println(const std::string &className, const std::string &message) const {
|
void ZLLogger::println(const std::string &className, const std::string &message) const {
|
||||||
print(className, message);
|
print(className, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZLLogger::printInternal(const std::string &message) const {
|
|
||||||
if (mySystemErr == 0) {
|
|
||||||
jclass systemClass = myEnv->FindClass("java/lang/System");
|
|
||||||
jfieldID systemErr = myEnv->GetStaticFieldID(systemClass, "err", "Ljava/io/PrintStream;");
|
|
||||||
mySystemErr = myEnv->GetStaticObjectField(systemClass, systemErr);
|
|
||||||
myEnv->DeleteLocalRef(systemClass);
|
|
||||||
}
|
|
||||||
if (myPrintStreamClass == 0) {
|
|
||||||
myPrintStreamClass = myEnv->FindClass("java/io/PrintStream");
|
|
||||||
}
|
|
||||||
|
|
||||||
jmethodID println = myEnv->GetMethodID(myPrintStreamClass, "print", "(Ljava/lang/String;)V");
|
|
||||||
jstring javaMessage = myEnv->NewStringUTF(message.c_str());
|
|
||||||
myEnv->CallVoidMethod(mySystemErr, println, javaMessage);
|
|
||||||
myEnv->DeleteLocalRef(javaMessage);
|
|
||||||
}
|
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
#ifndef __ZLLOGGER_H__
|
#ifndef __ZLLOGGER_H__
|
||||||
#define __ZLLOGGER_H__
|
#define __ZLLOGGER_H__
|
||||||
|
|
||||||
#include <jni.h>
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
|
@ -37,8 +35,6 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ZLLogger();
|
ZLLogger();
|
||||||
~ZLLogger();
|
|
||||||
void printInternal(const std::string &message) const;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void registerClass(const std::string &className);
|
void registerClass(const std::string &className);
|
||||||
|
@ -47,10 +43,6 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::set<std::string> myRegisteredClasses;
|
std::set<std::string> myRegisteredClasses;
|
||||||
|
|
||||||
JNIEnv *myEnv;
|
|
||||||
mutable jobject mySystemErr;
|
|
||||||
mutable jclass myPrintStreamClass;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* __ZLLOGGER_H__ */
|
#endif /* __ZLLOGGER_H__ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue