From 62e3e41c52ee224f41e63865c22f257e314520c2 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 28 Feb 2024 19:57:47 -0500 Subject: [PATCH] lpac-jni: Mark network-related LPA methods as synchronized These methods rely on non-thread-safe internal states within lpac's context. --- .../net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt index 072fcaa..b81a41a 100644 --- a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt +++ b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt @@ -115,6 +115,7 @@ class LocalProfileAssistantImpl( return LpacJni.es10cDeleteProfile(contextHandle, iccid) == 0 } + @Synchronized override fun downloadProfile(smdp: String, matchingId: String?, imei: String?, confirmationCode: String?, callback: ProfileDownloadCallback): Boolean { return LpacJni.downloadProfile(contextHandle, smdp, matchingId, imei, confirmationCode, callback) == 0 @@ -123,6 +124,7 @@ class LocalProfileAssistantImpl( override fun deleteNotification(seqNumber: Long): Boolean = LpacJni.es10bDeleteNotification(contextHandle, seqNumber) == 0 + @Synchronized override fun handleNotification(seqNumber: Long): Boolean = LpacJni.handleNotification(contextHandle, seqNumber).also { Log.d(TAG, "handleNotification $seqNumber = $it")