Browse Source

refactor: [9/n] Reimplement profile enabling / disabling

Peter Cai 2 years ago
parent
commit
0e43f392ab

+ 2 - 0
libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/LpacJni.kt

@@ -16,4 +16,6 @@ internal object LpacJni {
     // null returns signify errors
     // null returns signify errors
     external fun es10cGetEid(handle: Long): String?
     external fun es10cGetEid(handle: Long): String?
     external fun es10cGetProfilesInfo(handle: Long): Array<LocalProfileInfo>?
     external fun es10cGetProfilesInfo(handle: Long): Array<LocalProfileInfo>?
+    external fun es10cEnableProfile(handle: Long, iccid: String): Int
+    external fun es10cDisableProfile(handle: Long, iccid: String): Int
 }
 }

+ 2 - 2
libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt

@@ -25,11 +25,11 @@ class LocalProfileAssistantImpl(
     }
     }
 
 
     override fun enableProfile(iccid: String): Boolean {
     override fun enableProfile(iccid: String): Boolean {
-        TODO("Not yet implemented")
+        return LpacJni.es10cEnableProfile(contextHandle, iccid) == 0
     }
     }
 
 
     override fun disableProfile(iccid: String): Boolean {
     override fun disableProfile(iccid: String): Boolean {
-        TODO("Not yet implemented")
+        return LpacJni.es10cDisableProfile(contextHandle, iccid) == 0
     }
     }
 
 
     override fun deleteProfile(iccid: String): Boolean {
     override fun deleteProfile(iccid: String): Boolean {

+ 1 - 1
libs/lpac-jni/src/main/jni/lpac

@@ -1 +1 @@
-Subproject commit c29f1d40f131d955b4867e230da5539ea7cc6149
+Subproject commit 67b0ab857a37f92f8c73656fae9a11838aa9db43

+ 21 - 0
libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c

@@ -2,6 +2,7 @@
 #include <euicc/interface.h>
 #include <euicc/interface.h>
 #include <malloc.h>
 #include <malloc.h>
 #include <string.h>
 #include <string.h>
+#include <syslog.h>
 #include "lpac-jni.h"
 #include "lpac-jni.h"
 #include "interface-wrapper.h"
 #include "interface-wrapper.h"
 
 
@@ -184,4 +185,24 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cGetProfilesInfo(JNIEnv *env, jobject th
 
 
     es10c_profile_info_free_all(info, count);
     es10c_profile_info_free_all(info, count);
     return ret;
     return ret;
+}
+
+JNIEXPORT jint JNICALL
+Java_net_typeblog_lpac_1jni_LpacJni_es10cEnableProfile(JNIEnv *env, jobject thiz, jlong handle,
+                                                       jstring iccid) {
+    struct euicc_ctx *ctx = (struct euicc_ctx *) handle;
+    const char *_iccid = (*env)->GetStringUTFChars(env, iccid, NULL);
+    int ret = es10c_enable_profile_iccid(ctx, _iccid, 1);
+    (*env)->ReleaseStringUTFChars(env, iccid, _iccid);
+    return ret;
+}
+
+JNIEXPORT jint JNICALL
+Java_net_typeblog_lpac_1jni_LpacJni_es10cDisableProfile(JNIEnv *env, jobject thiz, jlong handle,
+                                                        jstring iccid) {
+    struct euicc_ctx *ctx = (struct euicc_ctx *) handle;
+    const char *_iccid = (*env)->GetStringUTFChars(env, iccid, NULL);
+    int ret = es10c_disable_profile_iccid(ctx, _iccid, 1);
+    (*env)->ReleaseStringUTFChars(env, iccid, _iccid);
+    return ret;
 }
 }