Browse Source

refactor: [10/n] Reimplement profile renaming and deletion

Peter Cai 2 years ago
parent
commit
37a7d332ef

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

@@ -18,4 +18,6 @@ internal object LpacJni {
     external fun es10cGetProfilesInfo(handle: Long): Array<LocalProfileInfo>?
     external fun es10cEnableProfile(handle: Long, iccid: String): Int
     external fun es10cDisableProfile(handle: Long, iccid: String): Int
+    external fun es10cDeleteProfile(handle: Long, iccid: String): Int
+    external fun es10cSetNickname(handle: Long, iccid: String, nick: String): Int
 }

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

@@ -33,7 +33,7 @@ class LocalProfileAssistantImpl(
     }
 
     override fun deleteProfile(iccid: String): Boolean {
-        TODO("Not yet implemented")
+        return LpacJni.es10cDeleteProfile(contextHandle, iccid) == 0
     }
 
     override fun downloadProfile(matchingId: String, imei: String) {
@@ -41,7 +41,7 @@ class LocalProfileAssistantImpl(
     }
 
     override fun setNickname(iccid: String, nickname: String): Boolean {
-        TODO("Not yet implemented")
+        return LpacJni.es10cSetNickname(contextHandle, iccid, nickname) == 0
     }
 
     override fun close() {

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

@@ -205,4 +205,26 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cDisableProfile(JNIEnv *env, jobject thi
     int ret = es10c_disable_profile_iccid(ctx, _iccid, 1);
     (*env)->ReleaseStringUTFChars(env, iccid, _iccid);
     return ret;
+}
+
+JNIEXPORT jint JNICALL
+Java_net_typeblog_lpac_1jni_LpacJni_es10cSetNickname(JNIEnv *env, jobject thiz, jlong handle,
+                                                     jstring iccid, jstring nick) {
+    struct euicc_ctx *ctx = (struct euicc_ctx *) handle;
+    const char *_iccid = (*env)->GetStringUTFChars(env, iccid, NULL);
+    const char *_nick = (*env)->GetStringUTFChars(env, nick, NULL);
+    int ret = es10c_set_nickname(ctx, _iccid, _nick);
+    (*env)->ReleaseStringUTFChars(env, nick, _nick);
+    (*env)->ReleaseStringUTFChars(env, iccid, _iccid);
+    return ret;
+}
+
+JNIEXPORT jint JNICALL
+Java_net_typeblog_lpac_1jni_LpacJni_es10cDeleteProfile(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_delete_profile_iccid(ctx, _iccid);
+    (*env)->ReleaseStringUTFChars(env, iccid, _iccid);
+    return ret;
 }