Compare commits
1 commit
abde69ea5c
...
b93d1f2ec0
Author | SHA1 | Date | |
---|---|---|---|
b93d1f2ec0 |
3 changed files with 79 additions and 56 deletions
57
libs/lpac-jni/src/main/jni/lpac-jni/lpac-convertor.c
Normal file
57
libs/lpac-jni/src/main/jni/lpac-jni/lpac-convertor.c
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#include "lpac-convertor.h"
|
||||||
|
|
||||||
|
jobject profile_state_enabled;
|
||||||
|
jobject profile_state_disabled;
|
||||||
|
jobject profile_class_operational;
|
||||||
|
jobject profile_class_provisioning;
|
||||||
|
jobject profile_class_testing;
|
||||||
|
|
||||||
|
static jobject bind_static_field(JNIEnv *env, jclass clazz, const char *name, const char *sig) {
|
||||||
|
jfieldID field = (*env)->GetStaticFieldID(env, clazz, name, sig);
|
||||||
|
jobject bound = (*env)->GetStaticObjectField(env, clazz, field);
|
||||||
|
return (*env)->NewGlobalRef(env, bound);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define BIND_PROFILE_STATE_STATIC_FIELD(NAME, FIELD) \
|
||||||
|
profile_state_##NAME = bind_static_field(env, profile_state_class, FIELD, "L" PROFILE_STATE_CLASS ";")
|
||||||
|
|
||||||
|
#define BIND_PROFILE_CLASS_STATIC_FIELD(NAME, FIELD) \
|
||||||
|
profile_class_##NAME = bind_static_field(env, profile_class_class, FIELD, "L" PROFILE_CLASS_CLASS ";")
|
||||||
|
|
||||||
|
void lpac_convertor_init(JNIEnv *env) {
|
||||||
|
jclass profile_state_class = (*env)->FindClass(env, PROFILE_STATE_CLASS);
|
||||||
|
BIND_PROFILE_STATE_STATIC_FIELD(enabled, "Enabled");
|
||||||
|
BIND_PROFILE_STATE_STATIC_FIELD(disabled, "Disabled");
|
||||||
|
|
||||||
|
jclass profile_class_class = (*env)->FindClass(env, PROFILE_CLASS_CLASS);
|
||||||
|
BIND_PROFILE_CLASS_STATIC_FIELD(operational, "Operational");
|
||||||
|
BIND_PROFILE_CLASS_STATIC_FIELD(provisioning, "Provisioning");
|
||||||
|
BIND_PROFILE_CLASS_STATIC_FIELD(testing, "Testing");
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef BIND_PROFILE_STATE_STATIC_FIELD
|
||||||
|
#undef BIND_PROFILE_CLASS_STATIC_FIELD
|
||||||
|
|
||||||
|
jobject to_profile_state(enum es10c_profile_state profile_state) {
|
||||||
|
switch (profile_state) {
|
||||||
|
case ES10C_PROFILE_STATE_ENABLED:
|
||||||
|
return profile_state_enabled;
|
||||||
|
case ES10C_PROFILE_STATE_DISABLED:
|
||||||
|
return profile_state_disabled;
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jobject to_profile_class(enum es10c_profile_class profile_class) {
|
||||||
|
switch (profile_class) {
|
||||||
|
case ES10C_PROFILE_CLASS_OPERATIONAL:
|
||||||
|
return profile_class_operational;
|
||||||
|
case ES10C_PROFILE_CLASS_PROVISIONING:
|
||||||
|
return profile_class_provisioning;
|
||||||
|
case ES10C_PROFILE_CLASS_TEST:
|
||||||
|
return profile_class_testing;
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
19
libs/lpac-jni/src/main/jni/lpac-jni/lpac-convertor.h
Normal file
19
libs/lpac-jni/src/main/jni/lpac-jni/lpac-convertor.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <jni.h>
|
||||||
|
#include <euicc/es10c.h>
|
||||||
|
|
||||||
|
jobject profile_state_enabled;
|
||||||
|
jobject profile_state_disabled;
|
||||||
|
jobject profile_class_operational;
|
||||||
|
jobject profile_class_provisioning;
|
||||||
|
jobject profile_class_testing;
|
||||||
|
|
||||||
|
#define PROFILE_STATE_CLASS "net/typeblog/lpac_jni/ProfileState"
|
||||||
|
#define PROFILE_CLASS_CLASS "net/typeblog/lpac_jni/ProfileClass"
|
||||||
|
|
||||||
|
void lpac_convertor_init(JNIEnv *env);
|
||||||
|
|
||||||
|
jobject to_profile_state(enum es10c_profile_state profile_state);
|
||||||
|
|
||||||
|
jobject to_profile_class(enum es10c_profile_class profile_class);
|
|
@ -9,6 +9,7 @@
|
||||||
#include "lpac-download.h"
|
#include "lpac-download.h"
|
||||||
#include "lpac-notifications.h"
|
#include "lpac-notifications.h"
|
||||||
#include "interface-wrapper.h"
|
#include "interface-wrapper.h"
|
||||||
|
#include "lpac-convertor.h"
|
||||||
|
|
||||||
JavaVM *jvm = NULL;
|
JavaVM *jvm = NULL;
|
||||||
|
|
||||||
|
@ -17,25 +18,18 @@ jstring empty_string;
|
||||||
jclass string_class;
|
jclass string_class;
|
||||||
jmethodID string_constructor;
|
jmethodID string_constructor;
|
||||||
|
|
||||||
jobject profile_state_enabled;
|
|
||||||
jobject profile_state_disabled;
|
|
||||||
jobject profile_class_operational;
|
|
||||||
jobject profile_class_provisioning;
|
|
||||||
jobject profile_class_testing;
|
|
||||||
|
|
||||||
#define LOCAL_PROFILE_INFO_CLASS "net/typeblog/lpac_jni/LocalProfileInfo"
|
#define LOCAL_PROFILE_INFO_CLASS "net/typeblog/lpac_jni/LocalProfileInfo"
|
||||||
#define PROFILE_STATE_CLASS "net/typeblog/lpac_jni/ProfileState"
|
|
||||||
#define PROFILE_CLASS_CLASS "net/typeblog/lpac_jni/ProfileClass"
|
|
||||||
|
|
||||||
jint JNI_OnLoad(JavaVM *vm, void *reserved) {
|
jint JNI_OnLoad(JavaVM *vm, void *reserved) {
|
||||||
jvm = vm;
|
jvm = vm;
|
||||||
LPAC_JNI_SETUP_ENV;
|
LPAC_JNI_SETUP_ENV;
|
||||||
|
|
||||||
interface_wrapper_init();
|
interface_wrapper_init();
|
||||||
|
lpac_convertor_init(env);
|
||||||
lpac_download_init();
|
lpac_download_init();
|
||||||
lpac_profile_init(env);
|
lpac_profile_init(env);
|
||||||
|
|
||||||
|
|
||||||
string_class = (*env)->FindClass(env, "java/lang/String");
|
string_class = (*env)->FindClass(env, "java/lang/String");
|
||||||
string_class = (*env)->NewGlobalRef(env, string_class);
|
string_class = (*env)->NewGlobalRef(env, string_class);
|
||||||
string_constructor = (*env)->GetMethodID(env, string_class, "<init>",
|
string_constructor = (*env)->GetMethodID(env, string_class, "<init>",
|
||||||
|
@ -48,32 +42,9 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) {
|
||||||
return JNI_VERSION_1_6;
|
return JNI_VERSION_1_6;
|
||||||
}
|
}
|
||||||
|
|
||||||
static jobject bind_static_field(JNIEnv *env, jclass clazz, const char *name, const char *sig) {
|
|
||||||
jfieldID field = (*env)->GetStaticFieldID(env, clazz, name, sig);
|
|
||||||
jobject bound = (*env)->GetStaticObjectField(env, clazz, field);
|
|
||||||
return (*env)->NewGlobalRef(env, bound);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BIND_PROFILE_STATE_STATIC_FIELD(NAME, FIELD) \
|
|
||||||
profile_state_##NAME = bind_static_field(env, profile_state_class, FIELD, "L" PROFILE_STATE_CLASS ";")
|
|
||||||
|
|
||||||
#define BIND_PROFILE_CLASS_STATIC_FIELD(NAME, FIELD) \
|
|
||||||
profile_class_##NAME = bind_static_field(env, profile_class_class, FIELD, "L" PROFILE_CLASS_CLASS ";")
|
|
||||||
|
|
||||||
void lpac_profile_init(JNIEnv *env) {
|
void lpac_profile_init(JNIEnv *env) {
|
||||||
jclass profile_state_class = (*env)->FindClass(env, PROFILE_STATE_CLASS);
|
|
||||||
BIND_PROFILE_STATE_STATIC_FIELD(enabled, "Enabled");
|
|
||||||
BIND_PROFILE_STATE_STATIC_FIELD(disabled, "Disabled");
|
|
||||||
|
|
||||||
jclass profile_class_class = (*env)->FindClass(env, PROFILE_CLASS_CLASS);
|
|
||||||
BIND_PROFILE_CLASS_STATIC_FIELD(operational, "Operational");
|
|
||||||
BIND_PROFILE_CLASS_STATIC_FIELD(provisioning, "Provisioning");
|
|
||||||
BIND_PROFILE_CLASS_STATIC_FIELD(testing, "Testing");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef BIND_PROFILE_STATE_STATIC_FIELD
|
|
||||||
#undef BIND_PROFILE_CLASS_STATIC_FIELD
|
|
||||||
|
|
||||||
JNIEXPORT jlong JNICALL
|
JNIEXPORT jlong JNICALL
|
||||||
Java_net_typeblog_lpac_1jni_LpacJni_createContext(JNIEnv *env, jobject thiz,
|
Java_net_typeblog_lpac_1jni_LpacJni_createContext(JNIEnv *env, jobject thiz,
|
||||||
jbyteArray isdr_aid,
|
jbyteArray isdr_aid,
|
||||||
|
@ -168,30 +139,6 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cGetEid(JNIEnv *env, jobject thiz, jlong
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static jobject to_profile_state(enum es10c_profile_state profile_state) {
|
|
||||||
switch (profile_state) {
|
|
||||||
case ES10C_PROFILE_STATE_ENABLED:
|
|
||||||
return profile_state_enabled;
|
|
||||||
case ES10C_PROFILE_STATE_DISABLED:
|
|
||||||
return profile_state_disabled;
|
|
||||||
default:
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static jobject to_profile_class(enum es10c_profile_class profile_class) {
|
|
||||||
switch (profile_class) {
|
|
||||||
case ES10C_PROFILE_CLASS_OPERATIONAL:
|
|
||||||
return profile_class_operational;
|
|
||||||
case ES10C_PROFILE_CLASS_PROVISIONING:
|
|
||||||
return profile_class_provisioning;
|
|
||||||
case ES10C_PROFILE_CLASS_TEST:
|
|
||||||
return profile_class_testing;
|
|
||||||
default:
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JNIEXPORT jlong JNICALL
|
JNIEXPORT jlong JNICALL
|
||||||
Java_net_typeblog_lpac_1jni_LpacJni_es10cGetProfilesInfo(
|
Java_net_typeblog_lpac_1jni_LpacJni_es10cGetProfilesInfo(
|
||||||
JNIEnv *env,
|
JNIEnv *env,
|
||||||
|
|
Loading…
Add table
Reference in a new issue