diff --git a/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc b/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc index 80bcdf0..171b017 100644 --- a/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc +++ b/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -358,6 +359,26 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_AbstractEngine__1stopSync( CallbackDispatcher::stop_sync(); } +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_AbstractEngine__1config_1media_1keys(JNIEnv *env, + jobject obj, + jobject value) +{ + std::mutex *mutex_local = nullptr; + { + std::lock_guard l(global_mutex); + pEpLog("called with lock_guard"); + mutex_local = get_engine_java_object_mutex(env, obj); + } + std::lock_guard l(*mutex_local); + + PEP_STATUS status = ::config_media_keys(Adapter::session(),to_stringpairlist(env, value)); + if (status) { + throw_pEp_Exception(env, status); + } + +} + + JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_AbstractEngine__1isSyncRunning(JNIEnv *env, jobject obj) { diff --git a/src/java/foundation/pEp/jniadapter/AbstractEngine.java b/src/java/foundation/pEp/jniadapter/AbstractEngine.java index 7d160d8..502236c 100644 --- a/src/java/foundation/pEp/jniadapter/AbstractEngine.java +++ b/src/java/foundation/pEp/jniadapter/AbstractEngine.java @@ -77,6 +77,19 @@ abstract class AbstractEngine extends UniquelyIdentifiable implements AbstractEn private native void _stopSync(); + public void config_media_keys(ArrayList> value) { + if (value != null) { + ArrayList> list = new ArrayList>(); + for (Pair i : value) { + list.add(new Pair(Utils.toUTF8(i.first), Utils.toUTF8(i.second))); + } + _config_media_keys(list); + } else { + _config_media_keys(null); + } + } + + private native void _config_media_keys(ArrayList> value); public boolean isSyncRunning() { return _isSyncRunning();