@@ -17,9 +17,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_get(JNIEnv *env, jobject t
17
17
[=]() -> jobject {
18
18
std::lock_guard lock{util::util_mutex_};
19
19
auto contacts = ptrToContacts (env, thiz);
20
- auto account_id_chars = env->GetStringUTFChars (account_id, nullptr );
21
- auto contact = contacts->get (account_id_chars);
22
- env->ReleaseStringUTFChars (account_id, account_id_chars);
20
+ auto contact = contacts->get (jni_utils::JavaStringRef (env, account_id).view ());
23
21
if (!contact) return nullptr ;
24
22
jobject j_contact = serialize_contact (env, contact.value ());
25
23
return j_contact;
@@ -35,9 +33,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_getOrConstruct(JNIEnv *env
35
33
return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
36
34
std::lock_guard lock{util::util_mutex_};
37
35
auto contacts = ptrToContacts (env, thiz);
38
- auto account_id_chars = env->GetStringUTFChars (account_id, nullptr );
39
- auto contact = contacts->get_or_construct (account_id_chars);
40
- env->ReleaseStringUTFChars (account_id, account_id_chars);
36
+ auto contact = contacts->get_or_construct (jni_utils::JavaStringRef (env, account_id).view ());
41
37
return serialize_contact (env, contact);
42
38
});
43
39
}
@@ -61,10 +57,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_erase(JNIEnv *env, jobject
61
57
return jni_utils::run_catching_cxx_exception_or_throws<jboolean>(env, [=] {
62
58
std::lock_guard lock{util::util_mutex_};
63
59
auto contacts = ptrToContacts (env, thiz);
64
- auto account_id_chars = env->GetStringUTFChars (account_id, nullptr );
65
-
66
- bool result = contacts->erase (account_id_chars);
67
- env->ReleaseStringUTFChars (account_id, account_id_chars);
60
+ bool result = contacts->erase (jni_utils::JavaStringRef (env, account_id).view ());
68
61
return result;
69
62
});
70
63
}
@@ -152,8 +145,8 @@ jobject serialize_blinded_contact(JNIEnv *env, const session::config::blinded_co
152
145
clazz.get (),
153
146
constructor,
154
147
jni_utils::JavaLocalRef (env, env->NewStringUTF (info.session_id ().c_str ())).get (),
155
- jni_utils::JavaLocalRef (env, env->NewStringUTF (info.comm . base_url ().data ())).get (),
156
- jni_utils::JavaLocalRef (env, env->NewStringUTF (info.comm . pubkey_hex ().data ())).get (),
148
+ jni_utils::JavaLocalRef (env, env->NewStringUTF (info.community_base_url ().data ())).get (),
149
+ jni_utils::JavaLocalRef (env, env->NewStringUTF (info.community_pubkey_hex ().data ())).get (),
157
150
jni_utils::JavaLocalRef (env, env->NewStringUTF (info.name .c_str ())).get (),
158
151
(jlong) (info.created .time_since_epoch ().count ()),
159
152
jni_utils::JavaLocalRef (env, util::serialize_user_pic (env, info.profile_picture )).get ()
@@ -164,15 +157,16 @@ session::config::blinded_contact_info deserialize_blinded_contact(JNIEnv *env, j
164
157
jni_utils::JavaLocalRef<jclass> clazz (env, env->GetObjectClass (jInfo));
165
158
auto idField = env->GetFieldID (clazz.get (), " id" , " Ljava/lang/String;" );
166
159
auto communityServerField = env->GetFieldID (clazz.get (), " communityServer" , " Ljava/lang/String;" );
167
- auto communityPubkeyField = env->GetFieldID (clazz.get (), " communityServerPubKeyHex " , " Ljava/lang/String; " );
160
+ auto getCommunityServerPubKey = env->GetMethodID (clazz.get (), " getCommunityServerPubKey " , " ()[B " );
168
161
auto nameField = env->GetFieldID (clazz.get (), " name" , " Ljava/lang/String;" );
169
162
auto createdEpochSecondsField = env->GetFieldID (clazz.get (), " createdEpochSeconds" , " J" );
170
163
auto profilePicField = env->GetFieldID (clazz.get (), " profilePic" , " Lnetwork/loki/messenger/libsession_util/util/UserPic;" );
171
164
172
- session::config::blinded_contact_info info;
173
- info.set_base_url (jni_utils::JavaStringRef (env, (jstring) env->GetObjectField (jInfo, communityServerField)).view ());
174
- info.set_pubkey (jni_utils::JavaStringRef (env, (jstring) env->GetObjectField (jInfo, communityPubkeyField)).view ());
175
- info.set_room (jni_utils::JavaStringRef (env, (jstring) env->GetObjectField (jInfo, idField)).view ());
165
+ session::config::blinded_contact_info info (
166
+ jni_utils::JavaStringRef (env, (jstring) env->GetObjectField (jInfo, communityServerField)).view (),
167
+ jni_utils::JavaByteArrayRef (env, (jbyteArray) env->CallObjectMethod (jInfo, getCommunityServerPubKey)).get (),
168
+ jni_utils::JavaStringRef (env, (jstring) env->GetObjectField (jInfo, idField)).view ()
169
+ );
176
170
info.created = std::chrono::sys_seconds{std::chrono::seconds{env->GetLongField (jInfo, createdEpochSecondsField)}};
177
171
info.profile_picture = util::deserialize_user_pic (env, jni_utils::JavaLocalRef (env, env->GetObjectField (jInfo, profilePicField)).get ());
178
172
@@ -189,8 +183,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_getOrConstructBlinded(JNIE
189
183
return serialize_blinded_contact (env, ptrToContacts (env, thiz)->get_or_construct_blinded (
190
184
jni_utils::JavaStringRef (env, community_server_url).view (),
191
185
jni_utils::JavaStringRef (env, community_server_pub_key_hex).view (),
192
- jni_utils::JavaStringRef (env, blinded_id).view (),
193
- false
186
+ jni_utils::JavaStringRef (env, blinded_id).view ()
194
187
));
195
188
}
196
189
@@ -210,8 +203,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_eraseBlinded(JNIEnv *env,
210
203
jstring blinded_id) {
211
204
ptrToContacts (env, thiz)->erase_blinded (
212
205
jni_utils::JavaStringRef (env, community_server_url).view (),
213
- jni_utils::JavaStringRef (env, blinded_id).view (),
214
- false ,
206
+ jni_utils::JavaStringRef (env, blinded_id).view ()
215
207
);
216
208
}
217
209
@@ -230,10 +222,7 @@ JNIEXPORT jobject JNICALL
230
222
Java_network_loki_messenger_libsession_1util_Contacts_getBlinded (JNIEnv *env,
231
223
jobject thiz,
232
224
jstring blinded_id) {
233
- auto result = ptrToContacts (env, thiz)->get_blinded (
234
- jni_utils::JavaStringRef (env, blinded_id).view (),
235
- false
236
- );
225
+ auto result = ptrToContacts (env, thiz)->get_blinded (jni_utils::JavaStringRef (env, blinded_id).view ());
237
226
238
227
if (result) {
239
228
return serialize_blinded_contact (env, *result);
0 commit comments