diff --git a/tangem-core/src/main/java/com/tangem/tasks/Task.kt b/tangem-core/src/main/java/com/tangem/tasks/Task.kt index 8e2dd1c491..cfcfddc25e 100644 --- a/tangem-core/src/main/java/com/tangem/tasks/Task.kt +++ b/tangem-core/src/main/java/com/tangem/tasks/Task.kt @@ -74,7 +74,9 @@ abstract class Task { } } is CompletionResult.Failure -> - if (result.error is TaskError.UserCancelledError) { + if (result.error is TaskError.TagLost) { + delegate?.hideSecurityDelay() + } else if (result.error is TaskError.UserCancelledError) { callback(CompletionResult.Failure(TaskError.UserCancelledError())) reader?.readingActive = false } diff --git a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/DefaultCardManagerDelegate.kt b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/DefaultCardManagerDelegate.kt index 051825e46e..1616c3d6f7 100644 --- a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/DefaultCardManagerDelegate.kt +++ b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/DefaultCardManagerDelegate.kt @@ -69,6 +69,15 @@ class DefaultCardManagerDelegate(private val reader: NfcReader) : CardManagerDel } } + override fun hideSecurityDelay() { + postUI { + readingDialog?.lTouchCard?.visibility = View.VISIBLE + readingDialog?.flSecurityDelay?.visibility = View.GONE + readingDialog?.tvTaskTitle?.text = activity.getText(R.string.dialog_ready_to_scan) + readingDialog?.tvTaskText?.text = activity.getText(R.string.dialog_scan_text) + } + } + override fun onTaskCompleted() { postUI { readingDialog?.lTouchCard?.visibility = View.GONE diff --git a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/nfc/NfcReader.kt b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/nfc/NfcReader.kt index fef45ceb69..9addd2f9bd 100644 --- a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/nfc/NfcReader.kt +++ b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/nfc/NfcReader.kt @@ -66,6 +66,10 @@ class NfcReader : CardReader { val rawResponse: ByteArray? try { rawResponse = isoDep?.transceive(data) + } catch (exception: TagLostException) { + callback?.invoke(CompletionResult.Failure(TaskError.TagLost())) + isoDep = null + return } catch (exception: Exception) { isoDep = null return diff --git a/tangem-sdk/src/main/res/layout/nfc_bottom_sheet.xml b/tangem-sdk/src/main/res/layout/nfc_bottom_sheet.xml index 8e3d94ddd3..9688b74981 100644 --- a/tangem-sdk/src/main/res/layout/nfc_bottom_sheet.xml +++ b/tangem-sdk/src/main/res/layout/nfc_bottom_sheet.xml @@ -12,7 +12,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="24dp" - android:text="Ready to Scan" + android:text="@string/dialog_ready_to_scan" android:textAppearance="@style/TextAppearance.AppCompat.Large" /> diff --git a/tangem-sdk/src/main/res/values/strings.xml b/tangem-sdk/src/main/res/values/strings.xml index f9ab1c5567..9b9abdadb8 100644 --- a/tangem-sdk/src/main/res/values/strings.xml +++ b/tangem-sdk/src/main/res/values/strings.xml @@ -6,5 +6,7 @@ Security delay This banknote has enforced security delay. Please hold the banknote firmly until the operation is completed… Error + Ready to Scan + Scan card with your phone as shown above