From 39c532240c51850be18dd5279175b508c9b45179 Mon Sep 17 00:00:00 2001 From: 0x330a <92654767+0x330a@users.noreply.github.com> Date: Tue, 21 Feb 2023 15:45:22 +1100 Subject: [PATCH] fix: compile errors from updating library to use latest branch, now requires cmake 3.22.1 --- .../securesms/database/Storage.kt | 8 +- libsession-util/build.gradle | 2 +- .../libsession_util/InstrumentedTests.kt | 24 ++--- libsession-util/src/main/cpp/contacts.h | 10 +-- libsession-util/src/main/cpp/conversation.cpp | 87 ++++++------------- libsession-util/src/main/cpp/conversation.h | 44 +++++----- .../loki/messenger/libsession_util/Config.kt | 22 +++-- .../libsession_util/util/Conversation.kt | 6 +- ...arserTest.kt => CommunityUrlParserTest.kt} | 4 +- 9 files changed, 83 insertions(+), 124 deletions(-) rename libsession/src/test/java/org/session/libsession/utilities/{OpenGroupUrlParserTest.kt => CommunityUrlParserTest.kt} (98%) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index 1e6395cbac..aaa0687e66 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -137,8 +137,8 @@ class Storage(context: Context, helper: SQLCipherOpenHelper, private val configF // recipient is open group recipient.isOpenGroupRecipient -> { val openGroupJoinUrl = getOpenGroup(threadId)?.joinURL ?: return - Conversation.OpenGroup.parseFullUrl(openGroupJoinUrl)?.let { (base, room, pubKey) -> - config.getOrConstructOpenGroup(base, room, pubKey) + Conversation.Community.parseFullUrl(openGroupJoinUrl)?.let { (base, room, pubKey) -> + config.getOrConstructCommunity(base, room, pubKey) } ?: return } // otherwise recipient is one to one @@ -356,10 +356,10 @@ class Storage(context: Context, helper: SQLCipherOpenHelper, private val configF is Conversation.OneToOne -> conversation.sessionId.let { getOrCreateThreadIdFor(fromSerialized(it)) } - is Conversation.LegacyClosedGroup -> conversation.groupId.let { + is Conversation.LegacyGroup -> conversation.groupId.let { getOrCreateThreadIdFor("", it,null) } - is Conversation.OpenGroup -> conversation.baseUrl.let { + is Conversation.Community -> conversation.baseUrl.let { getOrCreateThreadIdFor("",null, it) } } diff --git a/libsession-util/build.gradle b/libsession-util/build.gradle index 1b9c4eac37..e4f9ed56f3 100644 --- a/libsession-util/build.gradle +++ b/libsession-util/build.gradle @@ -26,7 +26,7 @@ android { externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" - version "3.18.1" + version "3.22.1" } } compileOptions { diff --git a/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt b/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt index 55800c0e6f..d1c1cb3bd7 100644 --- a/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt +++ b/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt @@ -355,41 +355,41 @@ class InstrumentedTests { @Test fun test_open_group_urls() { - val (base1, room1, pk1) = Conversation.OpenGroup.parseFullUrl( + val (base1, room1, pk1) = Conversation.Community.parseFullUrl( "https://example.com/" + "SomeRoom?public_key=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" )!! - val (base2, room2, pk2) = Conversation.OpenGroup.parseFullUrl( + val (base2, room2, pk2) = Conversation.Community.parseFullUrl( "HTTPS://EXAMPLE.COM/" + "sOMErOOM?public_key=0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" )!! - val (base3, room3, pk3) = Conversation.OpenGroup.parseFullUrl( + val (base3, room3, pk3) = Conversation.Community.parseFullUrl( "HTTPS://EXAMPLE.COM/r/" + "someroom?public_key=0123456789aBcdEF0123456789abCDEF0123456789ABCdef0123456789ABCDEF" )!! - val (base4, room4, pk4) = Conversation.OpenGroup.parseFullUrl( + val (base4, room4, pk4) = Conversation.Community.parseFullUrl( "http://example.com/r/" + "someroom?public_key=0123456789aBcdEF0123456789abCDEF0123456789ABCdef0123456789ABCDEF" )!! - val (base5, room5, pk5) = Conversation.OpenGroup.parseFullUrl( + val (base5, room5, pk5) = Conversation.Community.parseFullUrl( "HTTPS://EXAMPLE.com:443/r/" + "someroom?public_key=0123456789aBcdEF0123456789abCDEF0123456789ABCdef0123456789ABCDEF" )!! - val (base6, room6, pk6) = Conversation.OpenGroup.parseFullUrl( + val (base6, room6, pk6) = Conversation.Community.parseFullUrl( "HTTP://EXAMPLE.com:80/r/" + "someroom?public_key=0123456789aBcdEF0123456789abCDEF0123456789ABCdef0123456789ABCDEF" )!! - val (base7, room7, pk7) = Conversation.OpenGroup.parseFullUrl( + val (base7, room7, pk7) = Conversation.Community.parseFullUrl( "http://example.com:80/r/" + "someroom?public_key=ASNFZ4mrze8BI0VniavN7wEjRWeJq83vASNFZ4mrze8" )!! - val (base8, room8, pk8) = Conversation.OpenGroup.parseFullUrl( + val (base8, room8, pk8) = Conversation.Community.parseFullUrl( "http://example.com:80/r/" + "someroom?public_key=yrtwk3hjixg66yjdeiuauk6p7hy1gtm8tgih55abrpnsxnpm3zzo" )!! @@ -526,8 +526,8 @@ class InstrumentedTests { for (convo in allConvos) { when (convo) { is Conversation.OneToOne -> seen.add("1-to-1: ${convo.sessionId}") - is Conversation.OpenGroup -> seen.add("og: ${convo.baseUrl}/r/${convo.room}") - is Conversation.LegacyClosedGroup -> seen.add("cl: ${convo.groupId}") + is Conversation.Community -> seen.add("og: ${convo.baseUrl}/r/${convo.room}") + is Conversation.LegacyGroup -> seen.add("cl: ${convo.groupId}") } } @@ -550,11 +550,11 @@ class InstrumentedTests { ) assertEquals(1, convos.allOpenGroups().size) assertEquals("http://example.org:5678", - convos.allOpenGroups().map(Conversation.OpenGroup::baseUrl).first() + convos.allOpenGroups().map(Conversation.Community::baseUrl).first() ) assertEquals(1, convos.allLegacyClosedGroups().size) assertEquals("05cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", - convos.allLegacyClosedGroups().map(Conversation.LegacyClosedGroup::groupId).first() + convos.allLegacyClosedGroups().map(Conversation.LegacyGroup::groupId).first() ) } diff --git a/libsession-util/src/main/cpp/contacts.h b/libsession-util/src/main/cpp/contacts.h index c8cfb0778b..9aaeb78e77 100644 --- a/libsession-util/src/main/cpp/contacts.h +++ b/libsession-util/src/main/cpp/contacts.h @@ -16,14 +16,8 @@ inline jobject serialize_contact(JNIEnv *env, session::config::contact_info info jmethodID constructor = env->GetMethodID(contactClass, "", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZLnetwork/loki/messenger/libsession_util/util/UserPic;)V"); jstring id = env->NewStringUTF(info.session_id.data()); - jstring name = nullptr; - jstring nickname = nullptr; - if (info.name) { - name = env->NewStringUTF(info.name->data()); - } - if (info.nickname) { - nickname = env->NewStringUTF(info.nickname->data()); - } + jstring name = env->NewStringUTF(info.name.data()); + jstring nickname = env->NewStringUTF(info.nickname.data()); jboolean approved, approvedMe, blocked; approved = info.approved; approvedMe = info.approved_me; diff --git a/libsession-util/src/main/cpp/conversation.cpp b/libsession-util/src/main/cpp/conversation.cpp index 71cd32ccf6..96a75ee2fb 100644 --- a/libsession-util/src/main/cpp/conversation.cpp +++ b/libsession-util/src/main/cpp/conversation.cpp @@ -5,10 +5,10 @@ extern "C" JNIEXPORT jobject JNICALL -Java_network_loki_messenger_libsession_1util_util_Conversation_00024OpenGroup_00024Companion_parseFullUrl( +Java_network_loki_messenger_libsession_1util_util_Conversation_00024Community_00024Companion_parseFullUrl( JNIEnv *env, jobject thiz, jstring full_url) { auto bytes = env->GetStringUTFChars(full_url, nullptr); - auto [base, room, pk] = session::config::convo::open_group::parse_full_url(bytes); + auto [base, room, pk] = session::config::convo::community::parse_full_url(bytes); env->ReleaseStringUTFChars(full_url, bytes); jclass clazz = env->FindClass("kotlin/Triple"); @@ -74,13 +74,13 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseAll jmethodID predicate_call = env->GetMethodID(predicate_class, "invoke", "(Ljava/lang/Object;)Ljava/lang/Object;"); jclass bool_class = env->FindClass("java/lang/Boolean"); - jfieldID bool_value = env->GetFieldID(bool_class, "value", "Z"); + jmethodID bool_get = env->GetMethodID(bool_class, "booleanValue", "()Z"); int removed = 0; for (auto it = conversations->begin(); it != conversations->end(); ) { auto result = env->CallObjectMethod(predicate, predicate_call, serialize_any(env, *it)); - bool bool_result = env->GetBooleanField(result, bool_value); + bool bool_result = env->CallBooleanMethod(result, bool_get); if (bool_result) { it = conversations->erase(it); removed++; @@ -115,8 +115,8 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_set(JNIE auto convos = ptrToConvoInfo(env, thiz); jclass one_to_one = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$OneToOne"); - jclass open_group = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$OpenGroup"); - jclass legacy_closed_group = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyClosedGroup"); + jclass open_group = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$Community"); + jclass legacy_closed_group = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyGroup"); jclass to_store_class = env->GetObjectClass(to_store); if (env->IsSameObject(to_store_class, one_to_one)) { @@ -165,18 +165,15 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseOne env->ReleaseStringUTFChars(pub_key_hex, param); return result; } + extern "C" JNIEXPORT jobject JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOpenGroup__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2( - JNIEnv *env, jobject thiz, jstring base_url, jstring room, jstring pub_key_hex) { +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getCommunity__Ljava_lang_String_2Ljava_lang_String_2( + JNIEnv *env, jobject thiz, jstring base_url, jstring room) { auto convos = ptrToConvoInfo(env, thiz); auto base_url_chars = env->GetStringUTFChars(base_url, nullptr); auto room_chars = env->GetStringUTFChars(room, nullptr); - auto hex_chars = env->GetStringUTFChars(pub_key_hex, nullptr); - auto open = convos->get_open(base_url_chars, room_chars, hex_chars); - env->ReleaseStringUTFChars(base_url, base_url_chars); - env->ReleaseStringUTFChars(room, room_chars); - env->ReleaseStringUTFChars(pub_key_hex, hex_chars); + auto open = convos->get_community(base_url_chars, room_chars); if (open) { auto serialized = serialize_open_group(env, *open); return serialized; @@ -185,40 +182,25 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOpenG } extern "C" JNIEXPORT jobject JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOpenGroup__Ljava_lang_String_2Ljava_lang_String_2_3B( +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrConstructCommunity__Ljava_lang_String_2Ljava_lang_String_2_3B( JNIEnv *env, jobject thiz, jstring base_url, jstring room, jbyteArray pub_key) { auto convos = ptrToConvoInfo(env, thiz); auto base_url_chars = env->GetStringUTFChars(base_url, nullptr); auto room_chars = env->GetStringUTFChars(room, nullptr); auto pub_key_ustring = util::ustring_from_bytes(env, pub_key); - auto open = convos->get_open(base_url_chars, room_chars, pub_key_ustring); - if (open) { - auto serialized = serialize_open_group(env, *open); - return serialized; - } - return nullptr; -} -extern "C" -JNIEXPORT jobject JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrConstructOpenGroup__Ljava_lang_String_2Ljava_lang_String_2_3B( - JNIEnv *env, jobject thiz, jstring base_url, jstring room, jbyteArray pub_key) { - auto convos = ptrToConvoInfo(env, thiz); - auto base_url_chars = env->GetStringUTFChars(base_url, nullptr); - auto room_chars = env->GetStringUTFChars(room, nullptr); - auto pub_key_ustring = util::ustring_from_bytes(env, pub_key); - auto open = convos->get_or_construct_open(base_url_chars, room_chars, pub_key_ustring); + auto open = convos->get_or_construct_community(base_url_chars, room_chars, pub_key_ustring); auto serialized = serialize_open_group(env, open); return serialized; } extern "C" JNIEXPORT jobject JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrConstructOpenGroup__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2( +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrConstructCommunity__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2( JNIEnv *env, jobject thiz, jstring base_url, jstring room, jstring pub_key_hex) { auto convos = ptrToConvoInfo(env, thiz); auto base_url_chars = env->GetStringUTFChars(base_url, nullptr); auto room_chars = env->GetStringUTFChars(room, nullptr); auto hex_chars = env->GetStringUTFChars(pub_key_hex, nullptr); - auto open = convos->get_or_construct_open(base_url_chars, room_chars, hex_chars); + auto open = convos->get_or_construct_community(base_url_chars, room_chars, hex_chars); env->ReleaseStringUTFChars(base_url, base_url_chars); env->ReleaseStringUTFChars(room, room_chars); env->ReleaseStringUTFChars(pub_key_hex, hex_chars); @@ -227,7 +209,7 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrCon } extern "C" JNIEXPORT jboolean JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseOpenGroup__Lnetwork_loki_messenger_libsession_1util_util_Conversation_OpenGroup_2(JNIEnv *env, +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseCommunity__Lnetwork_loki_messenger_libsession_1util_util_Conversation_Community_2(JNIEnv *env, jobject thiz, jobject open_group) { auto convos = ptrToConvoInfo(env, thiz); @@ -236,27 +218,12 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseOpe } extern "C" JNIEXPORT jboolean JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseOpenGroup__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2( - JNIEnv *env, jobject thiz, jstring base_url, jstring room, jstring pub_key_hex) { +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseCommunity__Ljava_lang_String_2Ljava_lang_String_2( + JNIEnv *env, jobject thiz, jstring base_url, jstring room) { auto convos = ptrToConvoInfo(env, thiz); auto base_url_chars = env->GetStringUTFChars(base_url, nullptr); auto room_chars = env->GetStringUTFChars(room, nullptr); - auto hex_chars = env->GetStringUTFChars(pub_key_hex, nullptr); - auto result = convos->erase_open(base_url_chars, room_chars, hex_chars); - env->ReleaseStringUTFChars(base_url, base_url_chars); - env->ReleaseStringUTFChars(room, room_chars); - env->ReleaseStringUTFChars(pub_key_hex, hex_chars); - return result; -} -extern "C" -JNIEXPORT jboolean JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseOpenGroup__Ljava_lang_String_2Ljava_lang_String_2_3B( - JNIEnv *env, jobject thiz, jstring base_url, jstring room, jbyteArray pub_key) { - auto convos = ptrToConvoInfo(env, thiz); - auto base_url_chars = env->GetStringUTFChars(base_url, nullptr); - auto room_chars = env->GetStringUTFChars(room, nullptr); - auto pub_key_bytes = util::ustring_from_bytes(env, pub_key); - auto result = convos->erase_open(base_url_chars, room_chars, pub_key_bytes); + auto result = convos->erase_community(base_url_chars, room_chars); env->ReleaseStringUTFChars(base_url, base_url_chars); env->ReleaseStringUTFChars(room, room_chars); return result; @@ -267,7 +234,7 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getLegac JNIEnv *env, jobject thiz, jstring group_id) { auto convos = ptrToConvoInfo(env, thiz); auto id_chars = env->GetStringUTFChars(group_id, nullptr); - auto lgc = convos->get_legacy_closed(id_chars); + auto lgc = convos->get_legacy_group(id_chars); env->ReleaseStringUTFChars(group_id, id_chars); if (lgc) { auto serialized = serialize_legacy_group(env, *lgc); @@ -281,7 +248,7 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrCon JNIEnv *env, jobject thiz, jstring group_id) { auto convos = ptrToConvoInfo(env, thiz); auto id_chars = env->GetStringUTFChars(group_id, nullptr); - auto lgc = convos->get_or_construct_legacy_closed(id_chars); + auto lgc = convos->get_or_construct_legacy_group(id_chars); env->ReleaseStringUTFChars(group_id, id_chars); return serialize_legacy_group(env, lgc); } @@ -291,7 +258,7 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseLeg JNIEnv *env, jobject thiz, jstring group_id) { auto convos = ptrToConvoInfo(env, thiz); auto id_chars = env->GetStringUTFChars(group_id, nullptr); - auto result = convos->erase_legacy_closed(id_chars); + auto result = convos->erase_legacy_group(id_chars); env->ReleaseStringUTFChars(group_id, id_chars); return result; } @@ -307,17 +274,17 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_erase(JN } extern "C" JNIEXPORT jint JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_sizeOpenGroups(JNIEnv *env, +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_sizeCommunities(JNIEnv *env, jobject thiz) { auto convos = ptrToConvoInfo(env, thiz); - return convos->size_open(); + return convos->size_communities(); } extern "C" JNIEXPORT jint JNICALL Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_sizeLegacyClosedGroups( JNIEnv *env, jobject thiz) { auto convos = ptrToConvoInfo(env, thiz); - return convos->size_open(); + return convos->size_legacy_groups(); } extern "C" JNIEXPORT jobject JNICALL @@ -349,14 +316,14 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_allOneTo } extern "C" JNIEXPORT jobject JNICALL -Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_allOpenGroups(JNIEnv *env, +Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_allCommunities(JNIEnv *env, jobject thiz) { auto convos = ptrToConvoInfo(env, thiz); jclass stack = env->FindClass("java/util/Stack"); jmethodID init = env->GetMethodID(stack, "", "()V"); jobject our_stack = env->NewObject(stack, init); jmethodID push = env->GetMethodID(stack, "push", "(Ljava/lang/Object;)Ljava/lang/Object;"); - for (auto contact = convos->begin_open(); contact != convos->end(); ++contact) + for (auto contact = convos->begin_communities(); contact != convos->end(); ++contact) env->CallObjectMethod(our_stack, push, serialize_open_group(env, *contact)); return our_stack; } @@ -369,7 +336,7 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_allLegac jmethodID init = env->GetMethodID(stack, "", "()V"); jobject our_stack = env->NewObject(stack, init); jmethodID push = env->GetMethodID(stack, "push", "(Ljava/lang/Object;)Ljava/lang/Object;"); - for (auto contact = convos->begin_legacy_closed(); contact != convos->end(); ++contact) + for (auto contact = convos->begin_legacy_groups(); contact != convos->end(); ++contact) env->CallObjectMethod(our_stack, push, serialize_legacy_group(env, *contact)); return our_stack; } \ No newline at end of file diff --git a/libsession-util/src/main/cpp/conversation.h b/libsession-util/src/main/cpp/conversation.h index 7d35ef9545..76f191e790 100644 --- a/libsession-util/src/main/cpp/conversation.h +++ b/libsession-util/src/main/cpp/conversation.h @@ -21,25 +21,25 @@ inline jobject serialize_one_to_one(JNIEnv *env, session::config::convo::one_to_ return serialized; } -inline jobject serialize_open_group(JNIEnv *env, session::config::convo::open_group open_group) { - jclass clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$OpenGroup"); +inline jobject serialize_open_group(JNIEnv *env, session::config::convo::community community) { + jclass clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$Community"); jmethodID constructor = env->GetMethodID(clazz, "", "(Ljava/lang/String;Ljava/lang/String;[BJZ)V"); - auto base_url = env->NewStringUTF(open_group.base_url().data()); - auto room = env->NewStringUTF(open_group.room().data()); - auto pubkey_ustring = open_group.pubkey(); + auto base_url = env->NewStringUTF(community.base_url().data()); + auto room = env->NewStringUTF(community.room().data()); + auto pubkey_ustring = community.pubkey(); auto pubkey_jarray = util::bytes_from_ustring(env, session::ustring_view {pubkey_ustring.data(), pubkey_ustring.size()}); - auto last_read = open_group.last_read; - auto unread = open_group.unread; + auto last_read = community.last_read; + auto unread = community.unread; jobject serialized = env->NewObject(clazz, constructor, base_url, room, pubkey_jarray, last_read, unread); return serialized; } -inline jobject serialize_legacy_group(JNIEnv *env, session::config::convo::legacy_closed_group legacy_group) { - jclass clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyClosedGroup"); +inline jobject serialize_legacy_group(JNIEnv *env, session::config::convo::legacy_group group) { + jclass clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyGroup"); jmethodID constructor = env->GetMethodID(clazz, "", "(Ljava/lang/String;JZ)V"); - auto group_id = env->NewStringUTF(legacy_group.id.data()); - auto last_read = legacy_group.last_read; - auto unread = legacy_group.unread; + auto group_id = env->NewStringUTF(group.id.data()); + auto last_read = group.last_read; + auto unread = group.unread; jobject serialized = env->NewObject(clazz, constructor, group_id, last_read, unread); return serialized; } @@ -47,9 +47,9 @@ inline jobject serialize_legacy_group(JNIEnv *env, session::config::convo::legac inline jobject serialize_any(JNIEnv *env, session::config::convo::any any) { if (auto* dm = std::get_if(&any)) { return serialize_one_to_one(env, *dm); - } else if (auto* og = std::get_if(&any)) { + } else if (auto* og = std::get_if(&any)) { return serialize_open_group(env, *og); - } else if (auto* lgc = std::get_if(&any)) { + } else if (auto* lgc = std::get_if(&any)) { return serialize_legacy_group(env, *lgc); } return nullptr; @@ -70,8 +70,8 @@ inline session::config::convo::one_to_one* deserialize_one_to_one(JNIEnv *env, j return deserialized; } -inline session::config::convo::open_group* deserialize_open_group(JNIEnv *env, jobject info) { - auto clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$OpenGroup"); +inline session::config::convo::community* deserialize_open_group(JNIEnv *env, jobject info) { + auto clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$Community"); auto url_getter = env->GetFieldID(clazz, "baseUrl", "Ljava/lang/String;"); auto room_getter = env->GetFieldID(clazz, "room", "Ljava/lang/String;"); auto pub_key_getter = env->GetFieldID(clazz, "pubKey", "[B"); @@ -86,7 +86,7 @@ inline session::config::convo::open_group* deserialize_open_group(JNIEnv *env, j auto room_string = std::string {room_bytes}; auto pub_key_ustring = util::ustring_from_bytes(env, pub_key); - auto deserialized = new session::config::convo::open_group(base_string, room_string,pub_key_ustring); + auto deserialized = new session::config::convo::community(base_string, room_string,pub_key_ustring); deserialized->last_read = env->GetLongField(info, last_read_getter); deserialized->unread = env->GetBooleanField(info, unread_getter); env->ReleaseStringUTFChars(base_url, base_bytes); @@ -94,15 +94,15 @@ inline session::config::convo::open_group* deserialize_open_group(JNIEnv *env, j return deserialized; } -inline session::config::convo::legacy_closed_group* deserialize_legacy_closed_group(JNIEnv *env, jobject info) { - auto clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyClosedGroup"); +inline session::config::convo::legacy_group* deserialize_legacy_closed_group(JNIEnv *env, jobject info) { + auto clazz = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyGroup"); auto group_id_getter = env->GetFieldID(clazz, "groupId", "Ljava/lang/String;"); auto last_read_getter = env->GetFieldID(clazz, "lastRead", "J"); auto unread_getter = env->GetFieldID(clazz, "unread", "Z"); auto group_id = static_cast(env->GetObjectField(info, group_id_getter)); auto group_id_bytes = env->GetStringUTFChars(group_id, nullptr); auto group_id_string = std::string{group_id_bytes}; - auto deserialized = new session::config::convo::legacy_closed_group(group_id_string); + auto deserialized = new session::config::convo::legacy_group(group_id_string); deserialized->last_read = env->GetLongField(info, last_read_getter); deserialized->unread = env->GetBooleanField(info, unread_getter); env->ReleaseStringUTFChars(group_id, group_id_bytes); @@ -111,8 +111,8 @@ inline session::config::convo::legacy_closed_group* deserialize_legacy_closed_gr inline session::config::convo::any* deserialize_any(JNIEnv *env, jobject convo) { auto oto_class = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$OneToOne"); - auto og_class = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$OpenGroup"); - auto lgc_class = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyClosedGroup"); + auto og_class = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$Community"); + auto lgc_class = env->FindClass("network/loki/messenger/libsession_util/util/Conversation$LegacyGroup"); auto object_class = env->GetObjectClass(convo); if (env->IsSameObject(object_class, oto_class)) { return new session::config::convo::any{*deserialize_one_to_one(env, convo)}; diff --git a/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt b/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt index 3f3a464c5d..9634d3bcdf 100644 --- a/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt +++ b/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt @@ -91,16 +91,14 @@ class ConversationVolatileConfig(pointer: Long): ConfigBase(pointer) { external fun getOrConstructOneToOne(pubKeyHex: String): Conversation.OneToOne external fun eraseOneToOne(pubKeyHex: String): Boolean - external fun getOpenGroup(baseUrl: String, room: String, pubKeyHex: String): Conversation.OpenGroup? - external fun getOpenGroup(baseUrl: String, room: String, pubKey: ByteArray): Conversation.OpenGroup? - external fun getOrConstructOpenGroup(baseUrl: String, room: String, pubKeyHex: String): Conversation.OpenGroup - external fun getOrConstructOpenGroup(baseUrl: String, room: String, pubKey: ByteArray): Conversation.OpenGroup - external fun eraseOpenGroup(openGroup: Conversation.OpenGroup): Boolean - external fun eraseOpenGroup(baseUrl: String, room: String, pubKeyHex: String): Boolean - external fun eraseOpenGroup(baseUrl: String, room: String, pubKey: ByteArray): Boolean + external fun getCommunity(baseUrl: String, room: String): Conversation.Community? + external fun getOrConstructCommunity(baseUrl: String, room: String, pubKeyHex: String): Conversation.Community + external fun getOrConstructCommunity(baseUrl: String, room: String, pubKey: ByteArray): Conversation.Community + external fun eraseCommunity(community: Conversation.Community): Boolean + external fun eraseCommunity(baseUrl: String, room: String): Boolean - external fun getLegacyClosedGroup(groupId: String): Conversation.LegacyClosedGroup? - external fun getOrConstructLegacyClosedGroup(groupId: String): Conversation.LegacyClosedGroup + external fun getLegacyClosedGroup(groupId: String): Conversation.LegacyGroup? + external fun getOrConstructLegacyClosedGroup(groupId: String): Conversation.LegacyGroup external fun eraseLegacyClosedGroup(groupId: String): Boolean external fun erase(conversation: Conversation): Boolean @@ -112,15 +110,15 @@ class ConversationVolatileConfig(pointer: Long): ConfigBase(pointer) { external fun eraseAll(predicate: (Conversation) -> Boolean): Int external fun sizeOneToOnes(): Int - external fun sizeOpenGroups(): Int + external fun sizeCommunities(): Int external fun sizeLegacyClosedGroups(): Int external fun size(): Int external fun empty(): Boolean external fun allOneToOnes(): List - external fun allOpenGroups(): List - external fun allLegacyClosedGroups(): List + external fun allCommunities(): List + external fun allLegacyClosedGroups(): List external fun all(): List } \ No newline at end of file diff --git a/libsession-util/src/main/java/network/loki/messenger/libsession_util/util/Conversation.kt b/libsession-util/src/main/java/network/loki/messenger/libsession_util/util/Conversation.kt index 1ba4955af0..6dae95ac3e 100644 --- a/libsession-util/src/main/java/network/loki/messenger/libsession_util/util/Conversation.kt +++ b/libsession-util/src/main/java/network/loki/messenger/libsession_util/util/Conversation.kt @@ -13,7 +13,7 @@ sealed class Conversation { override var unread: Boolean ): Conversation() - data class OpenGroup( + data class Community( val baseUrl: String, val room: String, // lowercase val pubKey: ByteArray, @@ -34,7 +34,7 @@ sealed class Conversation { if (this === other) return true if (javaClass != other?.javaClass) return false - other as OpenGroup + other as Community if (baseUrl != other.baseUrl) return false if (room != other.room) return false @@ -53,7 +53,7 @@ sealed class Conversation { } } - data class LegacyClosedGroup( + data class LegacyGroup( val groupId: String, override var lastRead: Long, override var unread: Boolean diff --git a/libsession/src/test/java/org/session/libsession/utilities/OpenGroupUrlParserTest.kt b/libsession/src/test/java/org/session/libsession/utilities/CommunityUrlParserTest.kt similarity index 98% rename from libsession/src/test/java/org/session/libsession/utilities/OpenGroupUrlParserTest.kt rename to libsession/src/test/java/org/session/libsession/utilities/CommunityUrlParserTest.kt index 38a244699d..64d1c21fb4 100644 --- a/libsession/src/test/java/org/session/libsession/utilities/OpenGroupUrlParserTest.kt +++ b/libsession/src/test/java/org/session/libsession/utilities/CommunityUrlParserTest.kt @@ -1,9 +1,9 @@ package org.session.libsession.utilities +import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.Assert.* -class OpenGroupUrlParserTest { +class CommunityUrlParserTest { @Test fun parseUrlTest() {