diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4aa7899..aa222bd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.11.1" +agp = "8.12.0" kotlin = "2.2.0" [libraries] diff --git a/library/src/main/cpp/contacts.cpp b/library/src/main/cpp/contacts.cpp index dccba91..6d45d04 100644 --- a/library/src/main/cpp/contacts.cpp +++ b/library/src/main/cpp/contacts.cpp @@ -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 clazz(env, env->FindClass("network/loki/messenger/libsession_util/util/BlindedContact")); - auto constructor = env->GetMethodID(clazz.get(), "", "(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(), "", "(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(), @@ -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 ); } @@ -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(), @@ -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; } diff --git a/library/src/main/cpp/conversation.cpp b/library/src/main/cpp/conversation.cpp index b18a56f..45f1538 100644 --- a/library/src/main/cpp/conversation.cpp +++ b/library/src/main/cpp/conversation.cpp @@ -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); @@ -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(&any)) { return serialize_closed_group(env, *gc); + } else if (auto *bc = std::get_if(&any)) { + return serialize_blinded_one_to_one(env, *bc); } return nullptr; } @@ -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()); } diff --git a/library/src/main/java/network/loki/messenger/libsession_util/util/BlindedContact.kt b/library/src/main/java/network/loki/messenger/libsession_util/util/BlindedContact.kt index 134ebb5..d725200 100644 --- a/library/src/main/java/network/loki/messenger/libsession_util/util/BlindedContact.kt +++ b/library/src/main/java/network/loki/messenger/libsession_util/util/BlindedContact.kt @@ -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 diff --git a/libsession-util b/libsession-util index 551a48b..3ee705f 160000 --- a/libsession-util +++ b/libsession-util @@ -1 +1 @@ -Subproject commit 551a48b258f53a36c4cd1ad036d65e3dcd575fbc +Subproject commit 3ee705f3248337c71c159a88f6baafe85c02f1c3