Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[versions]
agp = "8.11.1"
agp = "8.12.0"
kotlin = "2.2.0"

[libraries]
Expand Down
10 changes: 8 additions & 2 deletions library/src/main/cpp/contacts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ session::config::contact_info deserialize_contact(JNIEnv *env, jobject info, ses

jobject serialize_blinded_contact(JNIEnv *env, const session::config::blinded_contact_info &info) {
jni_utils::JavaLocalRef<jclass> clazz(env, env->FindClass("network/loki/messenger/libsession_util/util/BlindedContact"));
auto constructor = env->GetMethodID(clazz.get(), "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLnetwork/loki/messenger/libsession_util/util/UserPic;)V");
auto constructor = env->GetMethodID(clazz.get(), "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJLnetwork/loki/messenger/libsession_util/util/UserPic;L)V");

return env->NewObject(
clazz.get(),
Expand All @@ -144,7 +144,9 @@ jobject serialize_blinded_contact(JNIEnv *env, const session::config::blinded_co
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.community_pubkey_hex().data())).get(),
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.name.c_str())).get(),
(jlong) (info.created.time_since_epoch().count()),
jni_utils::JavaLocalRef(env, util::serialize_user_pic(env, info.profile_picture)).get()
(jlong) (info.profile_updated.time_since_epoch().count()),
jni_utils::JavaLocalRef(env, util::serialize_user_pic(env, info.profile_picture)).get(),
(jlong) info.priority
);
}

Expand All @@ -155,7 +157,9 @@ session::config::blinded_contact_info deserialize_blinded_contact(JNIEnv *env, j
auto getCommunityServerPubKey = env->GetMethodID(clazz.get(), "getCommunityServerPubKey", "()[B");
auto nameField = env->GetFieldID(clazz.get(), "name", "Ljava/lang/String;");
auto createdEpochSecondsField = env->GetFieldID(clazz.get(), "createdEpochSeconds", "J");
auto profileUpdatedEpochSecondsField = env->GetFieldID(clazz.get(), "profileUpdatedEpochSeconds", "J");
auto profilePicField = env->GetFieldID(clazz.get(), "profilePic", "Lnetwork/loki/messenger/libsession_util/util/UserPic;");
auto priorityField = env->GetFieldID(clazz.get(), "priority", "J");

session::config::blinded_contact_info info(
jni_utils::JavaStringRef(env, (jstring) env->GetObjectField(jInfo, communityServerField)).view(),
Expand All @@ -165,6 +169,8 @@ session::config::blinded_contact_info deserialize_blinded_contact(JNIEnv *env, j
info.created = std::chrono::sys_seconds{std::chrono::seconds{env->GetLongField(jInfo, createdEpochSecondsField)}};
info.profile_picture = util::deserialize_user_pic(env, jni_utils::JavaLocalRef(env, env->GetObjectField(jInfo, profilePicField)).get());
info.name = jni_utils::JavaStringRef(env, jni_utils::JavaLocalRef(env, (jstring) env->GetObjectField(jInfo, nameField)).get()).view();
info.profile_updated = std::chrono::sys_seconds{std::chrono::seconds{env->GetLongField(jInfo, profileUpdatedEpochSecondsField)}};
info.priority = env->GetLongField(jInfo, priorityField);

return info;
}
Expand Down
8 changes: 5 additions & 3 deletions library/src/main/cpp/conversation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ session::config::convo::blinded_one_to_one deserialize_blinded_one_to_one(JNIEnv
auto unread_field_id = env->GetFieldID(clazz.get(), "unread", "Z");

session::config::convo::blinded_one_to_one r(
jni_utils::JavaStringRef(env, jni_utils::JavaLocalRef(env, (jstring) env->GetObjectField(info, id_field_id)).get()).view(), true);
jni_utils::JavaStringRef(env, jni_utils::JavaLocalRef(env, (jstring) env->GetObjectField(info, id_field_id)).get()).view());

r.last_read = env->GetLongField(info, last_read_field_id);
r.unread = env->GetBooleanField(info, unread_field_id);
Expand All @@ -142,6 +142,8 @@ jobject serialize_any(JNIEnv *env, session::config::convo::any any) {
return serialize_legacy_group(env, *lgc);
} else if (auto* gc = std::get_if<session::config::convo::group>(&any)) {
return serialize_closed_group(env, *gc);
} else if (auto *bc = std::get_if<session::config::convo::blinded_one_to_one>(&any)) {
return serialize_blinded_one_to_one(env, *bc);
}
return nullptr;
}
Expand Down Expand Up @@ -437,12 +439,12 @@ extern "C"
JNIEXPORT jobject JNICALL
Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrConstructedBlindedOneToOne(
JNIEnv *env, jobject thiz, jstring blinded_id) {
return serialize_blinded_one_to_one(env, ptrToConvoInfo(env, thiz)->get_or_construct_blinded_1to1(jni_utils::JavaStringRef(env, blinded_id).view(), true));
return serialize_blinded_one_to_one(env, ptrToConvoInfo(env, thiz)->get_or_construct_blinded_1to1(jni_utils::JavaStringRef(env, blinded_id).view()));
}

extern "C"
JNIEXPORT jboolean JNICALL
Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseBlindedOneToOne(
JNIEnv *env, jobject thiz, jstring blinded_id) {
return ptrToConvoInfo(env, thiz)->erase_blinded_1to1(jni_utils::JavaStringRef(env, blinded_id).view(), true);
return ptrToConvoInfo(env, thiz)->erase_blinded_1to1(jni_utils::JavaStringRef(env, blinded_id).view());
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ data class BlindedContact(
val communityServerPubKeyHex: String,
var name: String,
var createdEpochSeconds: Long,
var profilePic: UserPic
var profileUpdatedEpochSeconds: Long,
var profilePic: UserPic,
var priority: Long,
) {
@OptIn(ExperimentalStdlibApi::class)
val communityServerPubKey: ByteArray
Expand Down