diff --git a/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelFactory.kt b/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelFactory.kt index 15e0191..c741f49 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelFactory.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelFactory.kt @@ -24,7 +24,7 @@ open class DefaultEuiccChannelFactory(protected val context: Context) : EuiccCha Log.i(DefaultEuiccChannelManager.TAG, "Trying OMAPI for physical slot ${port.card.physicalSlotIndex}") try { - return OmapiChannel(seService!!, port) + return EuiccChannel(port, OmapiApduInterface(seService!!, port)) } catch (e: IllegalArgumentException) { // Failed Log.w( diff --git a/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannel.kt b/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannel.kt index 003c0cc..35cf0ad 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannel.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannel.kt @@ -1,16 +1,21 @@ package im.angry.openeuicc.core import im.angry.openeuicc.util.* +import net.typeblog.lpac_jni.ApduInterface import net.typeblog.lpac_jni.LocalProfileAssistant +import net.typeblog.lpac_jni.impl.HttpInterfaceImpl +import net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl -abstract class EuiccChannel( - val port: UiccPortInfoCompat +class EuiccChannel( + val port: UiccPortInfoCompat, + apduInterface: ApduInterface, ) { val slotId = port.card.physicalSlotIndex // PHYSICAL slot val logicalSlotId = port.logicalSlotIndex val portId = port.portIndex - abstract val lpa: LocalProfileAssistant + val lpa: LocalProfileAssistant = LocalProfileAssistantImpl(apduInterface, HttpInterfaceImpl()) + val valid: Boolean get() = lpa.valid diff --git a/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt b/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt index 1349f3c..3d3bfe1 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt @@ -5,9 +5,6 @@ import android.se.omapi.SEService import android.se.omapi.Session import im.angry.openeuicc.util.* import net.typeblog.lpac_jni.ApduInterface -import net.typeblog.lpac_jni.LocalProfileAssistant -import net.typeblog.lpac_jni.impl.HttpInterfaceImpl -import net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl class OmapiApduInterface( private val service: SEService, @@ -47,13 +44,4 @@ class OmapiApduInterface( return lastChannel.transmit(tx) } -} - -class OmapiChannel( - service: SEService, - port: UiccPortInfoCompat, -) : EuiccChannel(port) { - override val lpa: LocalProfileAssistant = LocalProfileAssistantImpl( - OmapiApduInterface(service, port), - HttpInterfaceImpl()) -} +} \ No newline at end of file diff --git a/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt b/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt index 78acefe..317248b 100644 --- a/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt +++ b/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt @@ -26,9 +26,7 @@ class PrivilegedEuiccChannelFactory(context: Context) : DefaultEuiccChannelFacto "Trying TelephonyManager for slot ${port.card.physicalSlotIndex} port ${port.portIndex}" ) try { - return TelephonyManagerChannel( - port, tm - ) + return EuiccChannel(port, TelephonyManagerApduInterface(port, tm)) } catch (e: IllegalArgumentException) { // Failed Log.w( diff --git a/app/src/main/java/im/angry/openeuicc/core/TelephonyManagerApduInterface.kt b/app/src/main/java/im/angry/openeuicc/core/TelephonyManagerApduInterface.kt index c0936a4..d6770c3 100644 --- a/app/src/main/java/im/angry/openeuicc/core/TelephonyManagerApduInterface.kt +++ b/app/src/main/java/im/angry/openeuicc/core/TelephonyManagerApduInterface.kt @@ -3,10 +3,7 @@ package im.angry.openeuicc.core import android.telephony.IccOpenLogicalChannelResponse import android.telephony.TelephonyManager import im.angry.openeuicc.util.* -import net.typeblog.lpac_jni.LocalProfileAssistant import net.typeblog.lpac_jni.ApduInterface -import net.typeblog.lpac_jni.impl.HttpInterfaceImpl -import net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl class TelephonyManagerApduInterface( private val port: UiccPortInfoCompat, @@ -54,14 +51,4 @@ class TelephonyManagerApduInterface( cla, instruction, p1, p2, p3, p4)?.decodeHex() ?: byteArrayOf() } -} - -class TelephonyManagerChannel( - port: UiccPortInfoCompat, - private val tm: TelephonyManager -) : EuiccChannel(port) { - override val lpa: LocalProfileAssistant = LocalProfileAssistantImpl( - TelephonyManagerApduInterface(port, tm), - HttpInterfaceImpl() - ) } \ No newline at end of file