From e797f7063fb77aae906d008791429c4798a22c36 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 10 Feb 2015 18:12:07 +0100 Subject: [PATCH] Add logcollection methods in linphoneFactory --- coreapi/linphonecore_jni.cc | 34 +++++++++++++------ .../linphone/core/LinphoneCoreFactory.java | 13 ++++++- .../core/LinphoneCoreFactoryImpl.java | 6 ++++ .../org/linphone/core/LinphoneCoreImpl.java | 13 +------ 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 8448e56fc..6b6556116 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -161,6 +161,21 @@ extern "C" void Java_org_linphone_core_LinphoneCoreFactoryImpl_setDebugMode(JNIE linphone_core_disable_logs(); } } + +extern "C" void Java_org_linphone_core_LinphoneCoreFactoryImpl_enableLogCollection(JNIEnv* env + ,jobject thiz + ,jboolean enable) { + linphone_core_enable_log_collection(enable ? LinphoneLogCollectionEnabledWithoutPreviousLogHandler : LinphoneLogCollectionDisabled); +} + +extern "C" void Java_org_linphone_core_LinphoneCoreFactoryImpl_setLogCollectionPath(JNIEnv* env + ,jobject thiz + ,jstring jpath) { + + const char* path = env->GetStringUTFChars(jpath, NULL); + linphone_core_set_log_collection_path(path); + env->ReleaseStringUTFChars(jpath, path); +} // LinphoneCore /* @@ -1073,6 +1088,10 @@ public: ,lcData->core ,(jlong)offset ,(jlong)total); + if (env->ExceptionCheck()) { + ms_error("Listener %p raised an exception",lcData->listener); + env->ExceptionClear(); + } } static void logCollectionUploadStateChange(LinphoneCore *lc, LinphoneCoreLogCollectionUploadState state, const char *info) { JNIEnv *env = 0; @@ -1089,6 +1108,10 @@ public: ,lcData->core ,env->CallStaticObjectMethod(lcData->logCollectionUploadStateClass,lcData->logCollectionUploadStateFromIntId,(jint)state), msg); + if (env->ExceptionCheck()) { + ms_error("Listener %p raised an exception",lcData->listener); + env->ExceptionClear(); + } if (msg) { env->DeleteLocalRef(msg); } @@ -1175,22 +1198,11 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_removeListener(JNIEnv* e //env->DeleteGlobalRef(listener); } - extern "C" void Java_org_linphone_core_LinphoneCoreImpl_uploadLogCollection(JNIEnv* env, jobject thiz, jlong lc) { LinphoneCore *core = (LinphoneCore*)lc; linphone_core_upload_log_collection(core); } -extern "C" void Java_org_linphone_core_LinphoneCoreImpl_enableLogCollection(JNIEnv* env, jclass cls, jboolean enable) { - linphone_core_enable_log_collection(enable ? LinphoneLogCollectionEnabledWithoutPreviousLogHandler : LinphoneLogCollectionDisabled); -} - -extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setLogCollectionPath(JNIEnv* env, jclass cls, jstring jpath) { - const char* path = env->GetStringUTFChars(jpath, NULL); - linphone_core_set_log_collection_path(path); - env->ReleaseStringUTFChars(jpath, path); -} - extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_migrateToMultiTransport(JNIEnv* env ,jobject thiz ,jlong lc) { diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index a26f95b9a..f7d5ccd66 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -109,7 +109,18 @@ abstract public class LinphoneCoreFactory { * @param enable true to enable debug mode, false to disable it * @param tag Tag which prefixes each log message. */ - abstract public void setDebugMode(boolean enable, String tag); + abstract public void setDebugMode(boolean enable, String tag); + + /** + * Enable the linphone core log collection to upload logs on a server. + */ + abstract public void enableLogCollection(boolean enable); + + /** + * Set the path where the log files will be written for log collection. + * @param path The path where the log files will be written. + */ + abstract public void setLogCollectionPath(String path); abstract public void setLogHandler(LinphoneLogHandler handler); diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 03e8f7ef3..90fd5a0f6 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -127,6 +127,12 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { public LinphoneFriend createLinphoneFriend() { return createLinphoneFriend(null); } + + @Override + public native void enableLogCollection(boolean enable); + + @Override + public native void setLogCollectionPath(String path); public static boolean isArmv7() { diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 2773189e8..bd361daca 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -36,7 +36,7 @@ import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.MulticastLock; import android.net.wifi.WifiManager.WifiLock; -public class LinphoneCoreImpl implements LinphoneCore { +class LinphoneCoreImpl implements LinphoneCore { private final LinphoneCoreListener mListener; //to make sure to keep a reference on this object protected long nativePtr = 0; @@ -1353,17 +1353,6 @@ public class LinphoneCoreImpl implements LinphoneCore { uploadLogCollection(nativePtr); } - /** - * Enable the linphone core log collection to upload logs on a server. - */ - public native static void enableLogCollection(boolean enable); - - /** - * Set the path where the log files will be written for log collection. - * @param path The path where the log files will be written. - */ - public native static void setLogCollectionPath(String path); - private native void setPreferredFramerate(long nativePtr, float fps); @Override public void setPreferredFramerate(float fps) {