diff options
author | Ahad Birang <farnabaz@gmail.com> | 2018-12-24 07:29:48 +0330 |
---|---|---|
committer | HoĆ V. DINH <dinh.viet.hoa@gmail.com> | 2018-12-23 21:59:48 -0600 |
commit | c4a2e84c3b6dbfd34ecd9d1f44cf032b437139fd (patch) | |
tree | ddea40f49f899c769619c784356bb90ba4eb5dca /src/java/JavaHandle.cpp | |
parent | 25aa18c7fbc6d31f8c668a60f96e87544e6a02bc (diff) |
Fix Operation Progress Listener on Android (#1787)
* feat(IMAPSession): add support for moveMessagesOpeation to java library
* feat: support fieldClass in getObjectField
* fix: use global reference of progress listener
pass progress values to callback function
Diffstat (limited to 'src/java/JavaHandle.cpp')
-rw-r--r-- | src/java/JavaHandle.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/java/JavaHandle.cpp b/src/java/JavaHandle.cpp index 1bf799e3..fdefc49a 100644 --- a/src/java/JavaHandle.cpp +++ b/src/java/JavaHandle.cpp @@ -2,15 +2,15 @@ using namespace mailcore; -static jfieldID getField(JNIEnv * env, jobject obj, const char * fieldName) +static jfieldID getField(JNIEnv * env, jobject obj, const char * fieldName, const char * fieldClass) { jclass c = env->GetObjectClass(obj); - return env->GetFieldID(c, fieldName, "J"); + return env->GetFieldID(c, fieldName, fieldClass); } static jfieldID getHandleField(JNIEnv * env, jobject obj) { - return getField(env, obj, "nativeHandle"); + return getField(env, obj, "nativeHandle", "J"); } void * mailcore::getHandle(JNIEnv * env, jobject obj) @@ -27,17 +27,17 @@ void mailcore::setHandle(JNIEnv *env, jobject obj, void *t) void * mailcore::getCustomHandle(JNIEnv * env, jobject obj, const char * fieldName) { - jlong handle = env->GetLongField(obj, getField(env, obj, fieldName)); + jlong handle = env->GetLongField(obj, getField(env, obj, fieldName, "J")); return (void *) handle; } void mailcore::setCustomHandle(JNIEnv *env, jobject obj, const char * fieldName, void *t) { jlong handle = reinterpret_cast<jlong>(t); - env->SetLongField(obj, getField(env, obj, fieldName), handle); + env->SetLongField(obj, getField(env, obj, fieldName, "J"), handle); } -jobject mailcore::getObjectField(JNIEnv *env, jobject obj, const char * fieldName) +jobject mailcore::getObjectField(JNIEnv *env, jobject obj, const char * fieldName, const char * fieldClass) { - return env->GetObjectField(obj, getField(env, obj, fieldName)); + return env->GetObjectField(obj, getField(env, obj, fieldName, fieldClass)); }
\ No newline at end of file |