diff --git a/app/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt b/app/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt index b66fcdc..0b313d2 100644 --- a/app/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt +++ b/app/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt @@ -34,7 +34,6 @@ class ProfileDownloadFragment : DialogFragment(), EuiccFragmentMarker, Toolbar.O private val barcodeScannerLauncher = registerForActivityResult(ScanContract()) { result -> result.contents?.let { content -> - Log.d(TAG, content) val components = content.split("$") if (components.size < 3 || components[0] != "LPA:1") return@registerForActivityResult binding.profileDownloadServer.editText?.setText(components[1]) @@ -101,7 +100,14 @@ class ProfileDownloadFragment : DialogFragment(), EuiccFragmentMarker, Toolbar.O } } - val code = binding.profileDownloadCode.editText!!.text.toString().trim() + val code = binding.profileDownloadCode.editText!!.let { + it.text.toString().trim().apply { + if (isEmpty()) { + it.requestFocus() + return@startDownloadProfile + } + } + } downloading = true diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.java b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.java index 7db8442..0480db4 100644 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.java +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.java @@ -10,6 +10,7 @@ import java.io.IOException; import java.util.List; import java.util.Map; import java.util.logging.Logger; +import org.apache.commons.lang3.StringUtils; class DownloadProfileWorker { private static final Logger LOG = Logger.getLogger(DownloadProfileWorker.class.getName()); @@ -41,7 +42,7 @@ class DownloadProfileWorker { String serverAddress; if(matchingId.contains("$")){ //Its activation code - String[] acParts = matchingId.split("\\$", -1); + String[] acParts = matchingId.split("\\$"); if(acParts.length<3 ) throw new RuntimeException("Invalid ActivationCode format"); 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 index f174d47..78ac483 100644 --- 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 @@ -30,9 +30,7 @@ public class ApduTransmitter { 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); + return apduResponse; } String transmitApdus(List apdus) { @@ -48,9 +46,7 @@ public class ApduTransmitter { 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); + return apduResponse; } void addApduTransmittedListener(ApduTransmittedListener apduTransmittedListener) {