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

no Book.save() call in native code

This commit is contained in:
Nikolay Pultsin 2013-01-13 06:09:23 +04:00
parent bc3976f5f6
commit 38c4ad935d
5 changed files with 9 additions and 13 deletions

View file

@ -83,7 +83,7 @@ static void fillMetaInfo(JNIEnv* env, jobject javaBook, Book &book) {
} }
} }
void fillLanguageAndEncoding(JNIEnv* env, jobject javaBook, Book &book) { static void fillLanguageAndEncoding(JNIEnv* env, jobject javaBook, Book &book) {
jstring javaString; jstring javaString;
javaString = AndroidUtil::createJavaString(env, book.language()); javaString = AndroidUtil::createJavaString(env, book.language());
@ -97,8 +97,6 @@ void fillLanguageAndEncoding(JNIEnv* env, jobject javaBook, Book &book) {
AndroidUtil::Method_Book_setEncoding->call(javaBook, javaString); AndroidUtil::Method_Book_setEncoding->call(javaBook, javaString);
env->DeleteLocalRef(javaString); env->DeleteLocalRef(javaString);
} }
AndroidUtil::Method_Book_save->call(javaBook);
} }
extern "C" extern "C"

View file

@ -78,8 +78,8 @@ shared_ptr<IntMethod> AndroidUtil::Method_EncodingConverter_convert;
shared_ptr<VoidMethod> AndroidUtil::Method_EncodingConverter_reset; shared_ptr<VoidMethod> AndroidUtil::Method_EncodingConverter_reset;
shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_JavaEncodingCollection_Instance; shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_JavaEncodingCollection_Instance;
shared_ptr<ObjectMethod> AndroidUtil::Method_JavaEncodingCollection_getEncoding_int; //shared_ptr<ObjectMethod> AndroidUtil::Method_JavaEncodingCollection_getEncoding_int;
shared_ptr<ObjectMethod> AndroidUtil::Method_JavaEncodingCollection_getEncoding_String; shared_ptr<ObjectMethod> AndroidUtil::Method_JavaEncodingCollection_getEncoding;
shared_ptr<BooleanMethod> AndroidUtil::Method_JavaEncodingCollection_providesConverterFor; shared_ptr<BooleanMethod> AndroidUtil::Method_JavaEncodingCollection_providesConverterFor;
shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_ZLFile_createFileByPath; shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_ZLFile_createFileByPath;
@ -104,7 +104,6 @@ shared_ptr<VoidMethod> AndroidUtil::Method_Book_setLanguage;
shared_ptr<VoidMethod> AndroidUtil::Method_Book_setEncoding; shared_ptr<VoidMethod> AndroidUtil::Method_Book_setEncoding;
shared_ptr<VoidMethod> AndroidUtil::Method_Book_addAuthor; shared_ptr<VoidMethod> AndroidUtil::Method_Book_addAuthor;
shared_ptr<VoidMethod> AndroidUtil::Method_Book_addTag; shared_ptr<VoidMethod> AndroidUtil::Method_Book_addTag;
shared_ptr<BooleanMethod> AndroidUtil::Method_Book_save;
shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_Tag_getTag; shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_Tag_getTag;
@ -154,8 +153,8 @@ bool AndroidUtil::init(JavaVM* jvm) {
Method_EncodingConverter_reset = new VoidMethod(Class_EncodingConverter, "reset", "()"); Method_EncodingConverter_reset = new VoidMethod(Class_EncodingConverter, "reset", "()");
StaticMethod_JavaEncodingCollection_Instance = new StaticObjectMethod(Class_JavaEncodingCollection, "Instance", Class_JavaEncodingCollection, "()"); StaticMethod_JavaEncodingCollection_Instance = new StaticObjectMethod(Class_JavaEncodingCollection, "Instance", Class_JavaEncodingCollection, "()");
Method_JavaEncodingCollection_getEncoding_String = new ObjectMethod(Class_JavaEncodingCollection, "getEncoding", Class_Encoding, "(Ljava/lang/String;)"); Method_JavaEncodingCollection_getEncoding = new ObjectMethod(Class_JavaEncodingCollection, "getEncoding", Class_Encoding, "(Ljava/lang/String;)");
Method_JavaEncodingCollection_getEncoding_int = new ObjectMethod(Class_JavaEncodingCollection, "getEncoding", Class_Encoding, "(I)"); //Method_JavaEncodingCollection_getEncoding_int = new ObjectMethod(Class_JavaEncodingCollection, "getEncoding", Class_Encoding, "(I)");
Method_JavaEncodingCollection_providesConverterFor = new BooleanMethod(Class_JavaEncodingCollection, "providesConverterFor", "(Ljava/lang/String;)"); Method_JavaEncodingCollection_providesConverterFor = new BooleanMethod(Class_JavaEncodingCollection, "providesConverterFor", "(Ljava/lang/String;)");
StaticMethod_ZLFile_createFileByPath = new StaticObjectMethod(Class_ZLFile, "createFileByPath", Class_ZLFile, "(Ljava/lang/String;)"); StaticMethod_ZLFile_createFileByPath = new StaticObjectMethod(Class_ZLFile, "createFileByPath", Class_ZLFile, "(Ljava/lang/String;)");
@ -180,7 +179,6 @@ bool AndroidUtil::init(JavaVM* jvm) {
Method_Book_setEncoding = new VoidMethod(Class_Book, "setEncoding", "(Ljava/lang/String;)"); Method_Book_setEncoding = new VoidMethod(Class_Book, "setEncoding", "(Ljava/lang/String;)");
Method_Book_addAuthor = new VoidMethod(Class_Book, "addAuthor", "(Ljava/lang/String;Ljava/lang/String;)"); Method_Book_addAuthor = new VoidMethod(Class_Book, "addAuthor", "(Ljava/lang/String;Ljava/lang/String;)");
Method_Book_addTag = new VoidMethod(Class_Book, "addTag", "(Lorg/geometerplus/fbreader/library/Tag;)"); Method_Book_addTag = new VoidMethod(Class_Book, "addTag", "(Lorg/geometerplus/fbreader/library/Tag;)");
Method_Book_save = new BooleanMethod(Class_Book, "save", "()");
StaticMethod_Tag_getTag = new StaticObjectMethod(Class_Tag, "getTag", Class_Tag, "(Lorg/geometerplus/fbreader/library/Tag;Ljava/lang/String;)"); StaticMethod_Tag_getTag = new StaticObjectMethod(Class_Tag, "getTag", Class_Tag, "(Lorg/geometerplus/fbreader/library/Tag;Ljava/lang/String;)");

View file

@ -110,8 +110,8 @@ public:
static shared_ptr<VoidMethod> Method_EncodingConverter_reset; static shared_ptr<VoidMethod> Method_EncodingConverter_reset;
static shared_ptr<StaticObjectMethod> StaticMethod_JavaEncodingCollection_Instance; static shared_ptr<StaticObjectMethod> StaticMethod_JavaEncodingCollection_Instance;
static shared_ptr<ObjectMethod> Method_JavaEncodingCollection_getEncoding_String; static shared_ptr<ObjectMethod> Method_JavaEncodingCollection_getEncoding;
static shared_ptr<ObjectMethod> Method_JavaEncodingCollection_getEncoding_int; //static shared_ptr<ObjectMethod> Method_JavaEncodingCollection_getEncoding_int;
static shared_ptr<BooleanMethod> Method_JavaEncodingCollection_providesConverterFor; static shared_ptr<BooleanMethod> Method_JavaEncodingCollection_providesConverterFor;
static shared_ptr<StaticObjectMethod> StaticMethod_Paths_cacheDirectory; static shared_ptr<StaticObjectMethod> StaticMethod_Paths_cacheDirectory;
@ -126,7 +126,6 @@ public:
static shared_ptr<VoidMethod> Method_Book_setEncoding; static shared_ptr<VoidMethod> Method_Book_setEncoding;
static shared_ptr<VoidMethod> Method_Book_addAuthor; static shared_ptr<VoidMethod> Method_Book_addAuthor;
static shared_ptr<VoidMethod> Method_Book_addTag; static shared_ptr<VoidMethod> Method_Book_addTag;
static shared_ptr<BooleanMethod> Method_Book_save;
static shared_ptr<StaticObjectMethod> StaticMethod_Tag_getTag; static shared_ptr<StaticObjectMethod> StaticMethod_Tag_getTag;

View file

@ -66,7 +66,7 @@ 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();
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->call(collection, encodingName);
myJavaConverter = AndroidUtil::Method_Encoding_createConverter->call(javaEncoding); myJavaConverter = AndroidUtil::Method_Encoding_createConverter->call(javaEncoding);
env->DeleteLocalRef(javaEncoding); env->DeleteLocalRef(javaEncoding);
env->DeleteLocalRef(encodingName); env->DeleteLocalRef(encodingName);

View file

@ -58,6 +58,7 @@ public class NativeFormatPlugin extends FormatPlugin {
@Override @Override
public void detectLanguageAndEncoding(Book book) { public void detectLanguageAndEncoding(Book book) {
detectLanguageAndEncodingNative(book); detectLanguageAndEncodingNative(book);
book.save(false);
} }
public native void detectLanguageAndEncodingNative(Book book); public native void detectLanguageAndEncodingNative(Book book);