Skip to content

Commit 7b447d3

Browse files
SessionHero01SessionHero01
authored andcommitted
Tidy up
1 parent ac654a0 commit 7b447d3

18 files changed

+222
-180
lines changed

library/src/main/cpp/config_base.cpp

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,29 @@ std::pair<std::string, std::vector<unsigned char>> extractHashAndData(JNIEnv *en
1616
);
1717
}
1818

19+
struct JavaConfigClassInfo : public jni_utils::JavaClassInfo {
20+
jfieldID pointer_field;
21+
22+
JavaConfigClassInfo(JNIEnv *env, jobject obj)
23+
:JavaClassInfo(env, obj),
24+
pointer_field(env->GetFieldID(java_class, "pointer", "J")) {}
25+
26+
static const JavaConfigClassInfo& get(JNIEnv *env, jobject obj) {
27+
static JavaConfigClassInfo class_info(env, obj);
28+
return class_info;
29+
}
30+
};
31+
32+
session::config::ConfigBase* ptrToConfigBase(JNIEnv *env, jobject obj) {
33+
return reinterpret_cast<session::config::ConfigBase*>(
34+
env->GetLongField(obj, JavaConfigClassInfo::get(env, obj).pointer_field));
35+
}
36+
37+
session::config::ConfigSig* ptrToConfigSig(JNIEnv* env, jobject obj) {
38+
return reinterpret_cast<session::config::ConfigSig*>(
39+
env->GetLongField(obj, JavaConfigClassInfo::get(env, obj).pointer_field));
40+
}
41+
1942
extern "C" {
2043
JNIEXPORT jboolean JNICALL
2144
Java_network_loki_messenger_libsession_1util_ConfigBase_dirty(JNIEnv *env, jobject thiz) {
@@ -47,9 +70,14 @@ Java_network_loki_messenger_libsession_1util_ConfigBase_push(JNIEnv *env, jobjec
4770

4871
jobject obsoleteHashes = jni_utils::jstring_list_from_collection(env, to_delete);
4972

50-
jclass returnObjectClass = env->FindClass("network/loki/messenger/libsession_util/util/ConfigPush");
51-
jmethodID methodId = env->GetMethodID(returnObjectClass, "<init>", "(Ljava/util/List;JLjava/util/List;)V");
52-
return env->NewObject(returnObjectClass, methodId, messages, static_cast<jlong>(seq_no), obsoleteHashes);
73+
static jni_utils::BasicJavaClassInfo class_info(
74+
env,
75+
"network/loki/messenger/libsession_util/util/ConfigPush",
76+
"(Ljava/util/List;JLjava/util/List;)V"
77+
);
78+
79+
return env->NewObject(class_info.java_class, class_info.constructor,
80+
messages, static_cast<jlong>(seq_no), obsoleteHashes);
5381
});
5482
}
5583

library/src/main/cpp/config_base.h

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,11 @@
11
#ifndef SESSION_ANDROID_CONFIG_BASE_H
22
#define SESSION_ANDROID_CONFIG_BASE_H
33

4-
#include "session/config/base.hpp"
5-
#include "util.h"
6-
#include "jni_utils.h"
7-
#include <jni.h>
8-
#include <string>
9-
#include <vector>
10-
11-
inline session::config::ConfigBase* ptrToConfigBase(JNIEnv *env, jobject obj) {
12-
auto baseClass = jni_utils::JavaLocalRef(env, env->FindClass("network/loki/messenger/libsession_util/ConfigBase"));
13-
jfieldID pointerField = env->GetFieldID(baseClass.get(), "pointer", "J");
14-
return (session::config::ConfigBase*) env->GetLongField(obj, pointerField);
15-
}
4+
#include <session/config/base.hpp>
165

6+
#include <jni.h>
177

18-
inline session::config::ConfigSig* ptrToConfigSig(JNIEnv* env, jobject obj) {
19-
auto sigClass = jni_utils::JavaLocalRef(env, env->FindClass("network/loki/messenger/libsession_util/ConfigSig"));
20-
jfieldID pointerField = env->GetFieldID(sigClass.get(), "pointer", "J");
21-
return (session::config::ConfigSig*) env->GetLongField(obj, pointerField);
22-
}
8+
session::config::ConfigBase* ptrToConfigBase(JNIEnv *env, jobject obj);
9+
session::config::ConfigSig* ptrToConfigSig(JNIEnv* env, jobject obj);
2310

2411
#endif

library/src/main/cpp/conversation.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
#include <jni.h>
2-
#include "conversation.h"
2+
#include <session/config/convo_info_volatile.hpp>
3+
34
#include "jni_utils.h"
5+
#include "util.h"
46
#include "user_groups.h"
7+
#include "config_base.h"
58

69
using namespace jni_utils;
710

11+
static auto ptrToConvoInfo(JNIEnv *env, jobject obj) {
12+
return dynamic_cast<session::config::ConvoInfoVolatile *>(ptrToConfigBase(env, obj));
13+
}
814

915
JavaLocalRef<jobject> serialize_pro_proof_info(JNIEnv *env,
1016
std::optional<std::span<const unsigned char>> gen_index_hash,

library/src/main/cpp/conversation.h

Lines changed: 0 additions & 17 deletions
This file was deleted.

library/src/main/cpp/group_info.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1+
#include <session/config/groups/info.hpp>
12
#include <jni.h>
2-
#include "group_info.h"
3-
#include "session/config/groups/info.hpp"
3+
4+
#include "util.h"
5+
#include "jni_utils.h"
6+
#include "config_base.h"
7+
8+
inline auto ptrToInfo(JNIEnv* env, jobject obj) {
9+
return dynamic_cast<session::config::groups::Info*>(ptrToConfigBase(env, obj));
10+
}
11+
412

513
extern "C"
614
JNIEXPORT jlong JNICALL

library/src/main/cpp/group_info.h

Lines changed: 0 additions & 13 deletions
This file was deleted.

library/src/main/cpp/group_keys.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1-
#include "group_keys.h"
2-
#include "group_info.h"
3-
#include "group_members.h"
1+
#include <session/config/groups/keys.hpp>
42

3+
#include "group_members.h"
54
#include "jni_utils.h"
5+
#include "util.h"
6+
#include "config_base.h"
7+
8+
inline auto ptrToKeys(JNIEnv* env, jobject obj) {
9+
return dynamic_cast<session::config::groups::Keys*>(ptrToConfigSig(env, obj));
10+
}
611

712
extern "C"
813
JNIEXPORT jint JNICALL

library/src/main/cpp/group_keys.h

Lines changed: 0 additions & 13 deletions
This file was deleted.

library/src/main/cpp/group_members.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
#include "group_members.h"
2-
32
#include "jni_utils.h"
3+
#include "util.h"
4+
#include "config_base.h"
45

56
using namespace jni_utils;
67

8+
inline session::config::groups::Members* ptrToMembers(JNIEnv* env, jobject obj) {
9+
return dynamic_cast<session::config::groups::Members *>(ptrToConfigBase(env, obj));
10+
}
11+
12+
inline session::config::groups::member *ptrToMember(JNIEnv *env, jobject thiz) {
13+
auto ptrField = env->GetFieldID(jni_utils::JavaLocalRef(env, env->GetObjectClass(thiz)).get(), "nativePtr", "J");
14+
return reinterpret_cast<session::config::groups::member*>(env->GetLongField(thiz, ptrField));
15+
}
16+
717
extern "C"
818
JNIEXPORT jlong JNICALL
919
Java_network_loki_messenger_libsession_1util_GroupMembersConfig_00024Companion_newInstance(

library/src/main/cpp/group_members.h

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
#ifndef SESSION_ANDROID_GROUP_MEMBERS_H
22
#define SESSION_ANDROID_GROUP_MEMBERS_H
33

4-
#include "util.h"
54
#include "jni_utils.h"
65

7-
inline session::config::groups::Members* ptrToMembers(JNIEnv* env, jobject obj) {
8-
jfieldID pointerField = env->GetFieldID(jni_utils::JavaLocalRef(env, env->GetObjectClass(obj)).get(), "pointer", "J");
9-
return (session::config::groups::Members*) env->GetLongField(obj, pointerField);
10-
}
6+
#include <session/config/groups/members.hpp>
117

12-
inline session::config::groups::member *ptrToMember(JNIEnv *env, jobject thiz) {
13-
auto ptrField = env->GetFieldID(jni_utils::JavaLocalRef(env, env->GetObjectClass(thiz)).get(), "nativePtr", "J");
14-
return reinterpret_cast<session::config::groups::member*>(env->GetLongField(thiz, ptrField));
15-
}
168

179
jni_utils::JavaLocalRef<jobject> serialize_group_member(JNIEnv* env, const session::config::groups::member& member);
1810

0 commit comments

Comments
 (0)