From 37f3d52362792aaa4d0db4ab10477b7e827aee3a Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 16 Jan 2023 20:43:47 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/domain/scanCard/ScanCardProcessor.kt | 9 +-------- .../features/home/compose/views/HomeButtons.kt | 1 + .../tap/features/home/redux/HomeMiddleware.kt | 17 ++++++++++------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/scanCard/ScanCardProcessor.kt b/app/src/main/java/com/tangem/tap/domain/scanCard/ScanCardProcessor.kt index b9e8f526f9..4dc0722d61 100644 --- a/app/src/main/java/com/tangem/tap/domain/scanCard/ScanCardProcessor.kt +++ b/app/src/main/java/com/tangem/tap/domain/scanCard/ScanCardProcessor.kt @@ -70,7 +70,6 @@ object ScanCardProcessor { result .doOnFailure { error -> - onProgressStateChange(false) onScanStateChange(false) onFailure(error) } @@ -87,7 +86,6 @@ object ScanCardProcessor { nextHandler = { scanResponse1 -> showDisclaimerIfNeed( scanResponse = scanResponse1, - onProgressStateChange = onProgressStateChange, disclaimerWillShow = disclaimerWillShow, onFailure = onFailure, nextHandler = { scanResponse2 -> @@ -144,7 +142,6 @@ object ScanCardProcessor { private suspend inline fun showDisclaimerIfNeed( scanResponse: ScanResponse, crossinline disclaimerWillShow: () -> Unit = {}, - crossinline onProgressStateChange: suspend (showProgress: Boolean) -> Unit, crossinline nextHandler: suspend (ScanResponse) -> Unit, crossinline onFailure: suspend (error: TangemError) -> Unit, ) { @@ -167,7 +164,6 @@ object ScanCardProcessor { }, onDismiss = { scope.launch(Dispatchers.Main) { - onProgressStateChange(false) onFailure(TangemSdkError.UserCancelled()) } }, @@ -208,14 +204,12 @@ object ScanCardProcessor { } else { delay(DELAY_SDK_DIALOG_CLOSE) onSuccess(scanResponse) - onProgressStateChange(false) } } is Result.Failure -> { SaltPayExceptionHandler.handle(result.error) delay(DELAY_SDK_DIALOG_CLOSE) onFailure(TangemSdkError.ExceptionError(result.error)) - onProgressStateChange(false) } } } @@ -223,10 +217,10 @@ object ScanCardProcessor { delay(DELAY_SDK_DIALOG_CLOSE) if (scanResponse.card.backupStatus?.isActive == false) { showSaltPayTapVisaLogoCardDialog() + onProgressStateChange(false) } else { onSuccess(scanResponse) } - onProgressStateChange(false) } } else { if (OnboardingHelper.isOnboardingCase(scanResponse)) { @@ -242,7 +236,6 @@ object ScanCardProcessor { } else { delay(DELAY_SDK_DIALOG_CLOSE) onSuccess(scanResponse) - onProgressStateChange(false) } } } diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt b/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt index cea593e6fe..b5ca216aeb 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt @@ -95,6 +95,7 @@ fun ProgressButton( Button( modifier = modifier, onClick = onClick, + enabled = !inProgress, colors = ButtonDefaults.textButtonColors( backgroundColor = backgroundColor, contentColor = contentColor, diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt index b85a6601c5..76048ed0f4 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt @@ -79,10 +79,9 @@ private fun readCard(analyticsEvent: AnalyticsEvent?) = scope.launch { onProgressStateChange = { showProgress -> if (showProgress) { changeButtonState(ButtonState.PROGRESS) + } else { + changeButtonState(ButtonState.ENABLED) } - // else { //todo hide this because - // changeButtonState(ButtonState.ENABLED) - // } }, onScanStateChange = { scanInProgress -> store.dispatch(HomeAction.ScanInProgress(scanInProgress)) @@ -103,19 +102,23 @@ private fun readCard(analyticsEvent: AnalyticsEvent?) = scope.launch { scope.launch { store.onUserWalletSelected(userWallet) } } .doOnResult { - changeButtonState(ButtonState.ENABLED) - store.dispatchOnMain(NavigationAction.NavigateTo(AppScreen.Wallet)) + navigateTo(AppScreen.Wallet) } } else { store.onCardScanned(scanResponse) - changeButtonState(ButtonState.ENABLED) - store.dispatchOnMain(NavigationAction.NavigateTo(AppScreen.Wallet)) + navigateTo(AppScreen.Wallet) } } }, ) } +private suspend fun navigateTo(appScreen: AppScreen) { + store.dispatchOnMain(NavigationAction.NavigateTo(appScreen)) + delay(200) + changeButtonState(ButtonState.ENABLED) +} + private fun changeButtonState(state: ButtonState) { store.dispatchOnMain(HomeAction.ChangeScanCardButtonState(IndeterminateProgressButton(state))) } \ No newline at end of file