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;
|
||||
|
||||
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_Locale = "java/util/Locale";
|
||||
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_NativeFormatPlugin = "org/geometerplus/fbreader/formats/NativeFormatPlugin";
|
||||
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_Tag = "org/geometerplus/fbreader/library/Tag";
|
||||
|
||||
jobject AndroidUtil::OBJECT_java_lang_System_err;
|
||||
|
||||
jmethodID AndroidUtil::MID_java_util_Collection_toArray;
|
||||
|
||||
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_skip;
|
||||
|
||||
jmethodID AndroidUtil::MID_java_io_PrintStream_println;
|
||||
|
||||
jmethodID AndroidUtil::SMID_ZLibrary_Instance;
|
||||
jmethodID AndroidUtil::MID_ZLibrary_getVersionName;
|
||||
|
||||
|
@ -86,6 +92,12 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
|||
JNIEnv *env = getEnv();
|
||||
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( 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") );
|
||||
|
@ -102,6 +114,10 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
|||
CHECK_NULL( MID_java_io_InputStream_skip = env->GetMethodID(cls, "skip", "(J)J") );
|
||||
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( 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;") );
|
||||
|
|
|
@ -30,9 +30,11 @@ private:
|
|||
static JavaVM *ourJavaVM;
|
||||
|
||||
public:
|
||||
static const char * const Class_java_lang_System;
|
||||
static const char * const Class_java_util_Collection;
|
||||
static const char * const Class_java_util_Locale;
|
||||
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_ZLFile;
|
||||
static const char * const Class_NativeFormatPlugin;
|
||||
|
@ -41,6 +43,8 @@ public:
|
|||
static const char * const Class_Book;
|
||||
static const char * const Class_Tag;
|
||||
|
||||
static jobject OBJECT_java_lang_System_err;
|
||||
|
||||
static jmethodID MID_java_util_Collection_toArray;
|
||||
|
||||
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_skip;
|
||||
|
||||
static jmethodID MID_java_io_PrintStream_println;
|
||||
|
||||
static jmethodID SMID_ZLibrary_Instance;
|
||||
static jmethodID MID_ZLibrary_getVersionName;
|
||||
|
||||
|
|
|
@ -25,6 +25,17 @@ const std::string ZLLogger::DEFAULT_CLASS;
|
|||
|
||||
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() {
|
||||
if (ourInstance == 0) {
|
||||
ourInstance = new ZLLogger();
|
||||
|
@ -33,14 +44,6 @@ ZLLogger &ZLLogger::Instance() {
|
|||
}
|
||||
|
||||
ZLLogger::ZLLogger() {
|
||||
myEnv = AndroidUtil::getEnv();
|
||||
mySystemErr = 0;
|
||||
myPrintStreamClass = 0;
|
||||
}
|
||||
|
||||
ZLLogger::~ZLLogger() {
|
||||
myEnv->DeleteLocalRef(mySystemErr);
|
||||
myEnv->DeleteLocalRef(myPrintStreamClass);
|
||||
}
|
||||
|
||||
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 {
|
||||
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__
|
||||
#define __ZLLOGGER_H__
|
||||
|
||||
#include <jni.h>
|
||||
|
||||
#include <string>
|
||||
#include <set>
|
||||
|
||||
|
@ -37,8 +35,6 @@ private:
|
|||
|
||||
private:
|
||||
ZLLogger();
|
||||
~ZLLogger();
|
||||
void printInternal(const std::string &message) const;
|
||||
|
||||
public:
|
||||
void registerClass(const std::string &className);
|
||||
|
@ -47,10 +43,6 @@ public:
|
|||
|
||||
private:
|
||||
std::set<std::string> myRegisteredClasses;
|
||||
|
||||
JNIEnv *myEnv;
|
||||
mutable jobject mySystemErr;
|
||||
mutable jclass myPrintStreamClass;
|
||||
};
|
||||
|
||||
#endif /* __ZLLOGGER_H__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue