#ifndef SESSION_ANDROID_UTIL_H #define SESSION_ANDROID_UTIL_H #include #include #include #include "session/types.hpp" #include "session/config/groups/info.hpp" #include "session/config/groups/keys.hpp" #include "session/config/groups/members.hpp" #include "session/config/profile_pic.hpp" #include "session/config/user_groups.hpp" #include "session/config/expiring.hpp" namespace util { extern std::mutex util_mutex_; jbyteArray bytes_from_ustring(JNIEnv* env, session::ustring_view from_str); 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); std::pair deserialize_user_pic(JNIEnv* env, jobject user_pic); jobject serialize_base_community(JNIEnv* env, const session::config::community& base_community); session::config::community deserialize_base_community(JNIEnv* env, jobject base_community); jobject serialize_expiry(JNIEnv* env, const session::config::expiration_mode& mode, const std::chrono::seconds& time_seconds); std::pair deserialize_expiry(JNIEnv* env, jobject expiry_mode); jobject serialize_group_member(JNIEnv* env, const session::config::groups::member& member); session::config::groups::member deserialize_group_member(JNIEnv* env, jobject member); jobject jlongFromOptional(JNIEnv* env, std::optional optional); jstring jstringFromOptional(JNIEnv* env, std::optional optional); jobject serialize_session_id(JNIEnv* env, std::string_view session_id); std::string deserialize_session_id(JNIEnv* env, jobject session_id); jobject build_string_stack(JNIEnv* env, std::vector to_add); jobject deserialize_swarm_auth(JNIEnv *env, session::config::groups::Keys::swarm_auth auth); } #endif