feat: implement a ustring from jstring for utils
This commit is contained in:
parent
eb30d17a3d
commit
9bf20a18c4
|
@ -1,14 +1,16 @@
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include "group_info.h"
|
#include "group_info.h"
|
||||||
|
#include "session/config/groups/info.hpp"
|
||||||
|
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT jobject JNICALL
|
JNIEXPORT jobject JNICALL
|
||||||
Java_network_loki_messenger_libsession_1util_GroupInfoConfig_newInstance__Ljava_lang_String_2(
|
Java_network_loki_messenger_libsession_1util_GroupInfoConfig_newInstance__Ljava_lang_String_2(
|
||||||
JNIEnv *env, jobject thiz, jstring pub_key_hex) {
|
JNIEnv *env, jobject thiz, jstring pub_key_hex) {
|
||||||
auto pub_key = env->GetStringUTFChars(pub_key_hex, nullptr);
|
std::lock_guard guard{util::util_mutex_};
|
||||||
|
auto pub_key_string = util::ustring_from_jstring(env, pub_key_hex);
|
||||||
env->ReleaseStringUTFChars(pub_key_hex, pub_key);
|
auto group_info = session::config::groups::Info(pub_key_string, std::nullopt, std::nullopt);
|
||||||
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
|
|
|
@ -23,6 +23,15 @@ namespace util {
|
||||||
return st;
|
return st;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
session::ustring ustring_from_jstring(JNIEnv* env, jstring string) {
|
||||||
|
size_t len = env->GetStringUTFLength(string);
|
||||||
|
auto chars = env->GetStringUTFChars(string, nullptr);
|
||||||
|
|
||||||
|
session::ustring st{reinterpret_cast<const unsigned char *>(chars), len};
|
||||||
|
env->ReleaseStringUTFChars(string, chars);
|
||||||
|
return st;
|
||||||
|
}
|
||||||
|
|
||||||
jobject serialize_user_pic(JNIEnv *env, session::config::profile_pic pic) {
|
jobject serialize_user_pic(JNIEnv *env, session::config::profile_pic pic) {
|
||||||
jclass returnObjectClass = env->FindClass("network/loki/messenger/libsession_util/util/UserPic");
|
jclass returnObjectClass = env->FindClass("network/loki/messenger/libsession_util/util/UserPic");
|
||||||
jmethodID constructor = env->GetMethodID(returnObjectClass, "<init>", "(Ljava/lang/String;[B)V");
|
jmethodID constructor = env->GetMethodID(returnObjectClass, "<init>", "(Ljava/lang/String;[B)V");
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace util {
|
||||||
extern std::mutex util_mutex_;
|
extern std::mutex util_mutex_;
|
||||||
jbyteArray bytes_from_ustring(JNIEnv* env, session::ustring_view from_str);
|
jbyteArray bytes_from_ustring(JNIEnv* env, session::ustring_view from_str);
|
||||||
session::ustring ustring_from_bytes(JNIEnv* env, jbyteArray byteArray);
|
session::ustring ustring_from_bytes(JNIEnv* env, jbyteArray byteArray);
|
||||||
|
session::ustring ustring_from_jstring(JNIEnv* env, jstring string);
|
||||||
jobject serialize_user_pic(JNIEnv *env, session::config::profile_pic pic);
|
jobject serialize_user_pic(JNIEnv *env, session::config::profile_pic pic);
|
||||||
std::pair<jstring, jbyteArray> deserialize_user_pic(JNIEnv *env, jobject user_pic);
|
std::pair<jstring, jbyteArray> deserialize_user_pic(JNIEnv *env, jobject user_pic);
|
||||||
jobject serialize_base_community(JNIEnv *env, const session::config::community& base_community);
|
jobject serialize_base_community(JNIEnv *env, const session::config::community& base_community);
|
||||||
|
|
Loading…
Reference in New Issue