From a6e59c3d275a0fa4f956a98f68d03a529d0ee837 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 18 May 2022 22:25:26 -0400 Subject: [PATCH] Convert ApduTransmitter to Kotlin --- .../lpa/impl/DownloadProfileWorker.kt | 2 +- .../lpa/impl/download/ApduTransmitter.java | 65 ----------------- .../lpa/impl/download/ApduTransmitter.kt | 72 +++++++++++++++++++ 3 files changed, 73 insertions(+), 66 deletions(-) delete mode 100644 libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.java create mode 100644 libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt index 20f303f..22bf7ed 100644 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt @@ -31,7 +31,7 @@ internal class DownloadProfileWorker( private var matchingId: String, private val imei: String, private val progress: DownloadProgress, - apduChannel: ApduChannel?, + apduChannel: ApduChannel, private val es9Module: Es9PlusImpl ) { private val apduTransmitter = ApduTransmitter(apduChannel) diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.java b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.java deleted file mode 100644 index f174d47..0000000 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.truphone.lpa.impl.download; - -import com.truphone.lpa.ApduChannel; -import com.truphone.lpa.ApduTransmittedListener; -import com.truphone.util.LogStub; - -import java.util.List; -import java.util.logging.Logger; - -public class ApduTransmitter { - private static final Logger LOG = Logger.getLogger(ApduTransmitter.class.getName()); - - private ApduChannel apduChannel; - - public ApduTransmitter(ApduChannel apduChannel) { - - this.apduChannel = apduChannel; - } - - String transmitApdu(String apdu) { - String apduResponse; - - if (LogStub.getInstance().isDebugEnabled()) { - LogStub.getInstance().logDebug(LOG, LogStub.getInstance().getTag() + " - APDU to transmit: " + apdu); - } - - apduResponse = apduChannel.transmitAPDU(apdu); - - if (LogStub.getInstance().isDebugEnabled()) { - LogStub.getInstance().logDebug(LOG, LogStub.getInstance().getTag() + " - Transmit APDU response: " + apduResponse); - } - - // Last 2 bytes are the status code (should be 0x9000) - // TODO: Do this properly - return apduResponse.substring(0, apduResponse.length() - 4); - } - - String transmitApdus(List apdus) { - String apduResponse; - - if (LogStub.getInstance().isDebugEnabled()) { - LogStub.getInstance().logDebug(LOG, LogStub.getInstance().getTag() + " - APDUs to transmit: " + apdus); - } - - apduResponse = apduChannel.transmitAPDUS(apdus); - - if (LogStub.getInstance().isDebugEnabled()) { - LogStub.getInstance().logDebug(LOG, LogStub.getInstance().getTag() + " - Transmit APDUs response: " + apduResponse); - } - - // Last 2 bytes are the status code (should be 0x9000) - // TODO: Do this properly - return apduResponse.substring(0, apduResponse.length() - 4); - } - - void addApduTransmittedListener(ApduTransmittedListener apduTransmittedListener) { - - apduChannel.setApduTransmittedListener(apduTransmittedListener); - } - - void removeApduTransmittedListener(ApduTransmittedListener apduTransmittedListener) { - - apduChannel.removeApduTransmittedListener(apduTransmittedListener); - } -} diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt new file mode 100644 index 0000000..6608923 --- /dev/null +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt @@ -0,0 +1,72 @@ +/* + * Copyright 2022 Peter Cai & Pierre-Hugues Husson + * + * This program is free software: you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. + * If not, see . + */ + +package com.truphone.lpa.impl.download + +import com.truphone.lpa.ApduChannel +import com.truphone.util.LogStub +import com.truphone.lpa.ApduTransmittedListener +import java.util.logging.Logger + +class ApduTransmitter(private val apduChannel: ApduChannel) { + companion object { + private val LOG = Logger.getLogger( + ApduTransmitter::class.java.name + ) + } + + fun transmitApdu(apdu: String): String { + if (LogStub.getInstance().isDebugEnabled) { + LogStub.getInstance() + .logDebug(LOG, LogStub.getInstance().tag + " - APDU to transmit: " + apdu) + } + val apduResponse = apduChannel.transmitAPDU(apdu) + if (LogStub.getInstance().isDebugEnabled) { + LogStub.getInstance().logDebug( + LOG, + LogStub.getInstance().tag + " - Transmit APDU response: " + apduResponse + ) + } + + // Last 2 bytes are the status code (should be 0x9000) + // TODO: Do this properly + return apduResponse.substring(0, apduResponse.length - 4) + } + + fun transmitApdus(apdus: List): String { + if (LogStub.getInstance().isDebugEnabled) { + LogStub.getInstance() + .logDebug(LOG, LogStub.getInstance().tag + " - APDUs to transmit: " + apdus) + } + val apduResponse = apduChannel.transmitAPDUS(apdus) + if (LogStub.getInstance().isDebugEnabled) { + LogStub.getInstance().logDebug( + LOG, + LogStub.getInstance().tag + " - Transmit APDUs response: " + apduResponse + ) + } + + // Last 2 bytes are the status code (should be 0x9000) + // TODO: Do this properly + return apduResponse.substring(0, apduResponse.length - 4) + } + + fun addApduTransmittedListener(apduTransmittedListener: ApduTransmittedListener?) { + apduChannel.setApduTransmittedListener(apduTransmittedListener) + } + + fun removeApduTransmittedListener(apduTransmittedListener: ApduTransmittedListener?) { + apduChannel.removeApduTransmittedListener(apduTransmittedListener) + } +} \ No newline at end of file