mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-25 11:05:25 +00:00
fix: compile issues in session_util.cpp and trying to fix native android builds
This commit is contained in:
parent
6593c40ab1
commit
a7554428d5
@ -17,9 +17,9 @@ android {
|
|||||||
cppFlags "--std=c++17"
|
cppFlags "--std=c++17"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ndk {
|
// ndk {
|
||||||
abiFilters 'x86_64', 'arm64-v8a' // ,'x86', 'armeabi-v7a' TODO: remove after the native library works properly with targets
|
// abiFilters 'x86_64', 'arm64-v8a' ,'x86', 'armeabi-v7a'
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit e52fc314e5a5659de7c2bb60bb29dc52b80b9ace
|
Subproject commit e98c2d383cf5e28f665b1b2c782791987eae0544
|
@ -1,13 +1,11 @@
|
|||||||
package network.loki.messenger.libsession_util
|
package network.loki.messenger.libsession_util
|
||||||
|
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
|
import org.junit.Assert.*
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
import org.junit.Assert.*
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instrumented test, which will execute on an Android device.
|
* Instrumented test, which will execute on an Android device.
|
||||||
*
|
*
|
||||||
@ -24,7 +22,8 @@ class ExampleInstrumentedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun jni_accessible() {
|
fun jni_accessible() {
|
||||||
assertEquals("Hello from C++", NativeLib().stringFromJNI())
|
val userProfile = UserProfile.newInstance()
|
||||||
|
assertNotNull(userProfile)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -39,8 +39,6 @@ find_library( # Sets the name of the path variable.
|
|||||||
# you want CMake to locate.
|
# you want CMake to locate.
|
||||||
log)
|
log)
|
||||||
|
|
||||||
# Add the libsession-util library here
|
|
||||||
|
|
||||||
# Specifies libraries CMake should link to your target library. You
|
# Specifies libraries CMake should link to your target library. You
|
||||||
# can link multiple libraries, such as libraries you define in this
|
# can link multiple libraries, such as libraries you define in this
|
||||||
# build script, prebuilt third-party libraries, or system libraries.
|
# build script, prebuilt third-party libraries, or system libraries.
|
||||||
|
@ -2,31 +2,34 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "session/config/user_profile.hpp"
|
#include "session/config/user_profile.hpp"
|
||||||
|
|
||||||
|
session::config::ConfigBase* ptrToConfigBase(JNIEnv *env, jobject obj) {
|
||||||
|
jclass baseClass = env->FindClass("network/loki/messenger/libsession_util/ConfigBase");
|
||||||
|
jfieldID pointerField = env->GetFieldID(baseClass, "pointer", "J");
|
||||||
|
return (session::config::ConfigBase*) env->GetLongField(obj, pointerField);
|
||||||
|
}
|
||||||
|
|
||||||
session::config::UserProfile* ptrToProfile(JNIEnv* env, jobject obj) {
|
session::config::UserProfile* ptrToProfile(JNIEnv* env, jobject obj) {
|
||||||
jclass configClass = env->FindClass("network/loki/messenger/libsession_util/Config");
|
jclass configClass = env->FindClass("network/loki/messenger/libsession_util/UserProfile");
|
||||||
jfieldID pointerField = env->GetFieldID(configClass, "pointer", "J");
|
jfieldID pointerField = env->GetFieldID(configClass, "pointer", "J");
|
||||||
return (session::config::UserProfile*) reinterpret_cast<long>(env->GetLongField(obj, pointerField));
|
return (session::config::UserProfile*) env->GetLongField(obj, pointerField);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT jobject JNICALL
|
extern "C" JNIEXPORT jobject JNICALL
|
||||||
Java_network_loki_messenger_libsession_1util_Config_00024Companion_newInstance(
|
Java_network_loki_messenger_libsession_1util_UserProfile_00024Companion_newInstance(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
jobject /*this*/) {
|
jobject) {
|
||||||
|
|
||||||
auto* profile = new session::config::UserProfile();
|
auto* profile = new session::config::UserProfile();
|
||||||
|
|
||||||
jclass configClass = env->FindClass("network/loki/messenger/libsession_util/Config");
|
jclass userClass = env->FindClass("network/loki/messenger/libsession_util/UserProfile");
|
||||||
jobject newConfig = env->AllocObject(configClass);
|
jmethodID constructor = env->GetMethodID(userClass, "<init>", "(J)V");
|
||||||
|
jobject newConfig = env->NewObject(userClass, constructor, reinterpret_cast<jlong>(profile));
|
||||||
jfieldID pointerField = env->GetFieldID(configClass, "pointer", "J");
|
|
||||||
env->SetLongField(newConfig, pointerField, reinterpret_cast<jlong>(profile));
|
|
||||||
|
|
||||||
return newConfig;
|
return newConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL
|
extern "C" JNIEXPORT void JNICALL
|
||||||
Java_network_loki_messenger_libsession_1util_Config_setName(
|
Java_network_loki_messenger_libsession_1util_UserProfile_setName(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
jobject obj,
|
jobject obj,
|
||||||
jstring newName) {
|
jstring newName) {
|
||||||
|
@ -1,9 +1,18 @@
|
|||||||
package network.loki.messenger.libsession_util
|
package network.loki.messenger.libsession_util
|
||||||
|
|
||||||
data class Config(private val /* yucky */ pointer: Long) {
|
|
||||||
|
sealed class ConfigBase(protected val /* yucky */ pointer: Long) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class UserProfile(pointer: Long): ConfigBase(pointer) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
external fun newInstance(): Config
|
init {
|
||||||
|
System.loadLibrary("session_util")
|
||||||
|
}
|
||||||
|
external fun newInstance(): UserProfile
|
||||||
}
|
}
|
||||||
|
|
||||||
var lastError: String? = null
|
var lastError: String? = null
|
||||||
|
Loading…
Reference in New Issue
Block a user