mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 10:49:24 +02:00
no Book.save() call in native code
This commit is contained in:
parent
aaded888d4
commit
5c01bea10a
7 changed files with 10 additions and 11 deletions
|
@ -29,7 +29,7 @@ include $(BUILD_STATIC_LIBRARY)
|
|||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := NativeFormats-v2
|
||||
LOCAL_MODULE := NativeFormats-v3
|
||||
LOCAL_CFLAGS := -Wall
|
||||
LOCAL_LDLIBS := -lz -llog
|
||||
LOCAL_STATIC_LIBRARIES := expat
|
||||
|
|
|
@ -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;
|
||||
|
||||
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);
|
||||
env->DeleteLocalRef(javaString);
|
||||
}
|
||||
|
||||
AndroidUtil::Method_Book_save->call(javaBook);
|
||||
}
|
||||
|
||||
extern "C"
|
||||
|
@ -119,7 +117,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) {
|
||||
JNIEXPORT void JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin_detectLanguageAndEncodingNative(JNIEnv* env, jobject thiz, jobject javaBook) {
|
||||
shared_ptr<FormatPlugin> plugin = findCppPlugin(thiz);
|
||||
if (plugin.isNull()) {
|
||||
return;
|
||||
|
|
|
@ -104,7 +104,6 @@ shared_ptr<VoidMethod> AndroidUtil::Method_Book_setLanguage;
|
|||
shared_ptr<VoidMethod> AndroidUtil::Method_Book_setEncoding;
|
||||
shared_ptr<VoidMethod> AndroidUtil::Method_Book_addAuthor;
|
||||
shared_ptr<VoidMethod> AndroidUtil::Method_Book_addTag;
|
||||
shared_ptr<BooleanMethod> AndroidUtil::Method_Book_save;
|
||||
|
||||
shared_ptr<StaticObjectMethod> AndroidUtil::StaticMethod_Tag_getTag;
|
||||
|
||||
|
@ -180,7 +179,6 @@ bool AndroidUtil::init(JavaVM* jvm) {
|
|||
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_addTag = new VoidMethod(Class_Book, "addTag", "(Lorg/geometerplus/fbreader/book/Tag;)");
|
||||
Method_Book_save = new BooleanMethod(Class_Book, "save", "()");
|
||||
|
||||
StaticMethod_Tag_getTag = new StaticObjectMethod(Class_Tag, "getTag", Class_Tag, "(Lorg/geometerplus/fbreader/book/Tag;Ljava/lang/String;)");
|
||||
|
||||
|
|
|
@ -126,7 +126,6 @@ public:
|
|||
static shared_ptr<VoidMethod> Method_Book_setEncoding;
|
||||
static shared_ptr<VoidMethod> Method_Book_addAuthor;
|
||||
static shared_ptr<VoidMethod> Method_Book_addTag;
|
||||
static shared_ptr<BooleanMethod> Method_Book_save;
|
||||
|
||||
static shared_ptr<StaticObjectMethod> StaticMethod_Tag_getTag;
|
||||
|
||||
|
|
|
@ -80,7 +80,6 @@
|
|||
public void setEncoding(**);
|
||||
public void addAuthor(**,**);
|
||||
public void addTag(**);
|
||||
public boolean save();
|
||||
}
|
||||
-keep class org.geometerplus.fbreader.book.Tag
|
||||
-keepclassmembers class org.geometerplus.fbreader.book.Tag {
|
||||
|
|
|
@ -56,7 +56,12 @@ public class NativeFormatPlugin extends FormatPlugin {
|
|||
private native boolean readMetaInfoNative(Book book);
|
||||
|
||||
@Override
|
||||
public native void detectLanguageAndEncoding(Book book);
|
||||
public void detectLanguageAndEncoding(Book book) {
|
||||
detectLanguageAndEncodingNative(book);
|
||||
book.save();
|
||||
}
|
||||
|
||||
public native void detectLanguageAndEncodingNative(Book book);
|
||||
|
||||
@Override
|
||||
synchronized public void readModel(BookModel model) throws BookReadingException {
|
||||
|
|
|
@ -30,7 +30,7 @@ import org.geometerplus.fbreader.formats.pdb.MobipocketPlugin;
|
|||
|
||||
public class PluginCollection {
|
||||
static {
|
||||
System.loadLibrary("NativeFormats-v2");
|
||||
System.loadLibrary("NativeFormats-v3");
|
||||
}
|
||||
|
||||
private static PluginCollection ourInstance;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue