diff --git a/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelWrapper.kt b/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelWrapper.kt index 1a108e5..09004d3 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelWrapper.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelWrapper.kt @@ -1,8 +1,10 @@ package im.angry.openeuicc.core +import im.angry.openeuicc.util.* +import net.typeblog.lpac_jni.ApduInterface import net.typeblog.lpac_jni.LocalProfileAssistant -class EuiccChannelWrapper(orig: EuiccChannel) : EuiccChannel by orig { +class EuiccChannelWrapper(orig: EuiccChannel) : EuiccChannel { private var _inner: EuiccChannel? = orig private val channel: EuiccChannel @@ -14,11 +16,30 @@ class EuiccChannelWrapper(orig: EuiccChannel) : EuiccChannel by orig { return _inner!! } + override val type: String + get() = channel.type + override val port: UiccPortInfoCompat + get() = channel.port + override val slotId: Int + get() = channel.slotId + override val logicalSlotId: Int + get() = channel.logicalSlotId + override val portId: Int + get() = channel.portId private val lpaDelegate = lazy { LocalProfileAssistantWrapper(channel.lpa) } - override val lpa: LocalProfileAssistant by lpaDelegate + override val valid: Boolean + get() = channel.valid + override val intrinsicChannelName: String? + get() = channel.intrinsicChannelName + override val apduInterface: ApduInterface + get() = channel.apduInterface + override val atr: ByteArray? + get() = channel.atr + + override fun close() = channel.close() fun invalidateWrapper() { _inner = null