diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 241dc78..27ba1cf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -agp = "8.12.0" -kotlin = "2.2.0" +agp = "8.13.0" +kotlin = "2.2.20" [libraries] junit = { module = "junit:junit", version = "4.13.2" } diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 23ed558..e708086 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) @@ -45,10 +47,6 @@ android { targetCompatibility = JavaVersion.VERSION_11 } - kotlinOptions { - jvmTarget = "11" - } - publishing { singleVariant("release") { withSourcesJar() @@ -56,6 +54,12 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_11 + } +} + publishing { publications { create("release") { diff --git a/library/src/main/cpp/user_profile.cpp b/library/src/main/cpp/user_profile.cpp index a992f48..37ee92a 100644 --- a/library/src/main/cpp/user_profile.cpp +++ b/library/src/main/cpp/user_profile.cpp @@ -92,6 +92,7 @@ Java_network_loki_messenger_libsession_1util_UserProfile_setCommunityMessageRequ auto profile = ptrToProfile(env, thiz); profile->set_blinded_msgreqs(std::optional{(bool)blocks}); } + extern "C" JNIEXPORT jboolean JNICALL Java_network_loki_messenger_libsession_1util_UserProfile_isBlockCommunityMessageRequestsSet( @@ -99,3 +100,17 @@ Java_network_loki_messenger_libsession_1util_UserProfile_isBlockCommunityMessage auto profile = ptrToProfile(env, thiz); return profile->get_blinded_msgreqs().has_value(); } + +extern "C" +JNIEXPORT jlong JNICALL +Java_network_loki_messenger_libsession_1util_UserProfile_getProfileUpdatedSeconds(JNIEnv *env, + jobject thiz) { + return ptrToProfile(env, thiz)->get_profile_updated().time_since_epoch().count(); +} + +extern "C" +JNIEXPORT void JNICALL +Java_network_loki_messenger_libsession_1util_UserProfile_setReuploadedPic(JNIEnv *env, jobject thiz, + jobject user_pic) { + ptrToProfile(env, thiz)->set_reupload_profile_pic(util::deserialize_user_pic(env, user_pic)); +} \ No newline at end of file diff --git a/library/src/main/java/network/loki/messenger/libsession_util/Config.kt b/library/src/main/java/network/loki/messenger/libsession_util/Config.kt index d177bf5..c87ed76 100644 --- a/library/src/main/java/network/loki/messenger/libsession_util/Config.kt +++ b/library/src/main/java/network/loki/messenger/libsession_util/Config.kt @@ -73,6 +73,7 @@ interface MutableContacts : ReadableContacts, MutableConfig { interface ReadableUserProfile: ReadableConfig { fun getName(): String? fun getPic(): UserPic + fun getProfileUpdatedSeconds(): Long fun getNtsPriority(): Long fun getNtsExpiry(): ExpiryMode fun getCommunityMessageRequests(): Boolean @@ -81,7 +82,16 @@ interface ReadableUserProfile: ReadableConfig { interface MutableUserProfile : ReadableUserProfile, MutableConfig { fun setName(newName: String) + + /** + * Called when setting a new user pic + */ fun setPic(userPic: UserPic) + + /** + * Called when setting a re-uploaded pic + */ + fun setReuploadedPic(userPic: UserPic) fun setNtsPriority(priority: Long) fun setNtsExpiry(expiryMode: ExpiryMode) fun setCommunityMessageRequests(blocks: Boolean) diff --git a/library/src/main/java/network/loki/messenger/libsession_util/UserProfile.kt b/library/src/main/java/network/loki/messenger/libsession_util/UserProfile.kt index 3f8b7ee..b1170b3 100644 --- a/library/src/main/java/network/loki/messenger/libsession_util/UserProfile.kt +++ b/library/src/main/java/network/loki/messenger/libsession_util/UserProfile.kt @@ -18,6 +18,8 @@ class UserProfile private constructor(pointer: Long) : ConfigBase(pointer), Muta external override fun getName(): String? external override fun getPic(): UserPic external override fun setPic(userPic: UserPic) + external override fun getProfileUpdatedSeconds(): Long + external override fun setReuploadedPic(userPic: UserPic) external override fun setNtsPriority(priority: Long) external override fun getNtsPriority(): Long external override fun setNtsExpiry(expiryMode: ExpiryMode) diff --git a/libsession-util b/libsession-util index 3ee705f..5e3835b 160000 --- a/libsession-util +++ b/libsession-util @@ -1 +1 @@ -Subproject commit 3ee705f3248337c71c159a88f6baafe85c02f1c3 +Subproject commit 5e3835bcfa7202cf307bc299bb1e40e160e8d357