diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/InjectableType.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/InjectableType.java deleted file mode 100644 index 033b3ef45a..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/InjectableType.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.thoughtcrime.securesms.dependencies; - -public interface InjectableType { -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/SessionUtilModule.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/SessionUtilModule.kt new file mode 100644 index 0000000000..0c0446bfdf --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/SessionUtilModule.kt @@ -0,0 +1,30 @@ +package org.thoughtcrime.securesms.dependencies + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.components.ActivityRetainedComponent +import dagger.hilt.android.scopes.ActivityRetainedScoped +import network.loki.messenger.libsession_util.UserProfile +import org.thoughtcrime.securesms.ApplicationContext +import org.thoughtcrime.securesms.crypto.KeyPairUtilities + +@Module +@InstallIn(ActivityRetainedComponent::class) +abstract class SessionUtilModule { + + private fun maybeUserEdSecretKey(context: ApplicationContext): ByteArray? { + val edKey = KeyPairUtilities.getUserED25519KeyPair(context) ?: return null + return edKey.secretKey.asBytes + } + + @Provides + @ActivityRetainedScoped + fun provideUser(context: ApplicationContext): UserProfile { + val key = maybeUserEdSecretKey(context) + return UserProfile.newInstance(key ?: byteArrayOf()) + } + + + +} \ No newline at end of file diff --git a/libsession-util/src/main/cpp/config_base.cpp b/libsession-util/src/main/cpp/config_base.cpp index 5d9a25b8ee..83f92a9b9f 100644 --- a/libsession-util/src/main/cpp/config_base.cpp +++ b/libsession-util/src/main/cpp/config_base.cpp @@ -33,6 +33,12 @@ Java_network_loki_messenger_libsession_1util_ConfigBase_push(JNIEnv *env, jobjec return returnObject; } +JNIEXPORT void JNICALL +Java_network_loki_messenger_libsession_1util_ConfigBase_free(JNIEnv *env, jobject thiz) { + auto config = ptrToConfigBase(env, thiz); + delete config; +} + JNIEXPORT jbyteArray JNICALL Java_network_loki_messenger_libsession_1util_ConfigBase_dump(JNIEnv *env, jobject thiz) { auto config = ptrToConfigBase(env, thiz); diff --git a/libsession-util/src/main/cpp/user_profile.cpp b/libsession-util/src/main/cpp/user_profile.cpp index bb2f7dd7bc..1b39e128cd 100644 --- a/libsession-util/src/main/cpp/user_profile.cpp +++ b/libsession-util/src/main/cpp/user_profile.cpp @@ -54,12 +54,6 @@ Java_network_loki_messenger_libsession_1util_UserProfile_getName(JNIEnv *env, jo return returnString; } -JNIEXPORT void JNICALL -Java_network_loki_messenger_libsession_1util_UserProfile_free(JNIEnv *env, jobject thiz) { - auto profile = ptrToProfile(env, thiz); - delete profile; -} - JNIEXPORT jobject JNICALL Java_network_loki_messenger_libsession_1util_UserProfile_getPic(JNIEnv *env, jobject thiz) { auto profile = ptrToProfile(env, thiz); 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 5487aa1161..267da4b73c 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 @@ -23,6 +23,14 @@ sealed class ConfigBase(protected val /* yucky */ pointer: Long) { // Singular merge external fun merge(toMerge: ByteArray): Int + + external fun free() + + @Override + fun finalize() { + free() + } + } class Contacts(pointer: Long) : ConfigBase(pointer) { @@ -53,7 +61,6 @@ class UserProfile(pointer: Long) : ConfigBase(pointer) { external fun setName(newName: String) external fun getName(): String? - external fun free() external fun getPic(): UserPic? external fun setPic(userPic: UserPic) } \ No newline at end of file