diff --git a/app/src/main/java/com/tangem/tap/domain/scanCard/DefaultScanCardProcessor.kt b/app/src/main/java/com/tangem/tap/domain/scanCard/DefaultScanCardProcessor.kt index f04b03cef6..51e1ece9e8 100644 --- a/app/src/main/java/com/tangem/tap/domain/scanCard/DefaultScanCardProcessor.kt +++ b/app/src/main/java/com/tangem/tap/domain/scanCard/DefaultScanCardProcessor.kt @@ -41,7 +41,6 @@ internal class DefaultScanCardProcessor( cardId: String?, onProgressStateChange: suspend (showProgress: Boolean) -> Unit, onWalletNotCreated: suspend () -> Unit, - disclaimerWillShow: () -> Unit, onCancel: suspend () -> Unit, onFailure: suspend (error: TangemError) -> Unit, onSuccess: suspend (scanResponse: ScanResponse) -> Unit, @@ -52,7 +51,6 @@ internal class DefaultScanCardProcessor( cardId = cardId, onProgressStateChange = onProgressStateChange, onWalletNotCreated = onWalletNotCreated, - disclaimerWillShow = disclaimerWillShow, onFailure = onFailure, onSuccess = onSuccess, ) @@ -63,7 +61,6 @@ internal class DefaultScanCardProcessor( cardId = cardId, onProgressStateChange = onProgressStateChange, onWalletNotCreated = onWalletNotCreated, - disclaimerWillShow = disclaimerWillShow, onCancel = onCancel, onFailure = onFailure, onSuccess = onSuccess, diff --git a/app/src/main/java/com/tangem/tap/domain/scanCard/LegacyScanProcessor.kt b/app/src/main/java/com/tangem/tap/domain/scanCard/LegacyScanProcessor.kt index 3c0b311ca7..40f0ad6457 100644 --- a/app/src/main/java/com/tangem/tap/domain/scanCard/LegacyScanProcessor.kt +++ b/app/src/main/java/com/tangem/tap/domain/scanCard/LegacyScanProcessor.kt @@ -28,18 +28,14 @@ import com.tangem.sdk.extensions.localizedDescriptionRes import com.tangem.tap.common.analytics.paramsInterceptor.CardContextInterceptor import com.tangem.tap.common.extensions.dispatchNavigationAction import com.tangem.tap.common.extensions.inject -import com.tangem.tap.features.disclaimer.createDisclaimer import com.tangem.tap.features.onboarding.OnboardingHelper import com.tangem.tap.mainScope import com.tangem.tap.proxy.redux.DaggerGraphState -import com.tangem.tap.scope import com.tangem.tap.store import com.tangem.tap.tangemSdkManager import com.tangem.utils.extensions.DELAY_SDK_DIALOG_CLOSE -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import javax.inject.Inject import javax.inject.Singleton @@ -74,7 +70,6 @@ internal class LegacyScanProcessor @Inject constructor( cardId: String?, onProgressStateChange: suspend (showProgress: Boolean) -> Unit, onWalletNotCreated: suspend () -> Unit, - disclaimerWillShow: () -> Unit, onCancel: suspend () -> Unit, onFailure: suspend (error: TangemError) -> Unit, onSuccess: suspend (scanResponse: ScanResponse) -> Unit, @@ -114,17 +109,11 @@ internal class LegacyScanProcessor @Inject constructor( sendAnalytics(analyticsEvent, scanResponse) - showDisclaimerIfNeed( + onScanSuccess( scanResponse = scanResponse, - disclaimerWillShow = disclaimerWillShow, - nextHandler = { scanResponse2 -> - onScanSuccess( - scanResponse = scanResponse2, - onProgressStateChange = onProgressStateChange, - onSuccess = onSuccess, - onWalletNotCreated = onWalletNotCreated, - ) - }, + onProgressStateChange = onProgressStateChange, + onSuccess = onSuccess, + onWalletNotCreated = onWalletNotCreated, ) } } @@ -139,32 +128,6 @@ internal class LegacyScanProcessor @Inject constructor( Analytics.send(analyticsEvent) } - // TODO: [REDACTED_JIRA] - @Suppress("UnusedPrivateMember") - private suspend inline fun showDisclaimerIfNeed( - scanResponse: ScanResponse, - crossinline disclaimerWillShow: () -> Unit = {}, - crossinline nextHandler: suspend (ScanResponse) -> Unit, - ) { - val disclaimer = scanResponse.card.createDisclaimer() - - if (disclaimer.isAccepted()) { - nextHandler(scanResponse) - } else { - scope.launch { - delay(DELAY_SDK_DIALOG_CLOSE) - - withContext(Dispatchers.Main.immediate) { - disclaimerWillShow() - - store.dispatchNavigationAction { - push(AppRoute.Disclaimer(isTosAccepted = false)) - } - } - } - } - } - private suspend inline fun onScanFailure( analyticsSource: AnalyticsParam.ScreensSources, error: TangemError, diff --git a/app/src/main/java/com/tangem/tap/domain/scanCard/UseCaseScanProcessor.kt b/app/src/main/java/com/tangem/tap/domain/scanCard/UseCaseScanProcessor.kt index d9bbaccdb4..43eb6bd70c 100644 --- a/app/src/main/java/com/tangem/tap/domain/scanCard/UseCaseScanProcessor.kt +++ b/app/src/main/java/com/tangem/tap/domain/scanCard/UseCaseScanProcessor.kt @@ -49,7 +49,6 @@ internal object UseCaseScanProcessor { cardId: String?, onProgressStateChange: suspend (showProgress: Boolean) -> Unit, onWalletNotCreated: suspend () -> Unit, - disclaimerWillShow: () -> Unit, onFailure: suspend (error: TangemError) -> Unit, onSuccess: suspend (scanResponse: ScanResponse) -> Unit, ) = progressScope(onProgressStateChange) { @@ -61,7 +60,6 @@ internal object UseCaseScanProcessor { ), ) add(AnalyticsChain(Basic.CardWasScanned(analyticsSource))) - add(DisclaimerChain(store, disclaimerWillShow)) add(CheckForOnboardingChain(store)) } diff --git a/app/src/main/java/com/tangem/tap/domain/scanCard/chains/DisclaimerChain.kt b/app/src/main/java/com/tangem/tap/domain/scanCard/chains/DisclaimerChain.kt deleted file mode 100644 index 7bd4be874c..0000000000 --- a/app/src/main/java/com/tangem/tap/domain/scanCard/chains/DisclaimerChain.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.tangem.tap.domain.scanCard.chains - -import arrow.core.right -import com.tangem.common.routing.AppRoute -import com.tangem.domain.card.ScanCardException -import com.tangem.domain.core.chain.Chain -import com.tangem.domain.core.chain.ResultChain -import com.tangem.domain.models.scan.ScanResponse -import com.tangem.tap.common.extensions.dispatchNavigationAction -import com.tangem.tap.common.redux.AppState -import com.tangem.tap.features.disclaimer.createDisclaimer -import org.rekotlin.Store - -/** - * Handles disclaimer display after the card scanning operation. - * - * Returns [ScanChainException.DisclaimerWasCanceled] if the disclaimer is dismissed by the user. - * - * @param store the [Store] that holds the state of the app, used here to dispatch actions related to disclaimers. - * @param disclaimerWillShow an optional function to be invoked when a disclaimer is about to be shown. Default is an - * empty function. - * - * @see Chain for more information about the Chain interface. - */ -internal class DisclaimerChain( - private val store: Store, - private val disclaimerWillShow: () -> Unit = {}, -) : ResultChain() { - - override suspend fun launch(previousChainResult: ScanResponse): ScanChainResult { - val disclaimer = previousChainResult.card.createDisclaimer() - - return if (disclaimer.isAccepted()) { - previousChainResult.right() - } else { - disclaimerWillShow() - - // TODO: [REDACTED_JIRA] - store.dispatchNavigationAction { - push(route = AppRoute.Disclaimer(isTosAccepted = false)) - } - - previousChainResult.right() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/routing/component/impl/DefaultRoutingComponent.kt b/app/src/main/java/com/tangem/tap/routing/component/impl/DefaultRoutingComponent.kt index be5208d6d8..40c3a80da7 100644 --- a/app/src/main/java/com/tangem/tap/routing/component/impl/DefaultRoutingComponent.kt +++ b/app/src/main/java/com/tangem/tap/routing/component/impl/DefaultRoutingComponent.kt @@ -174,14 +174,7 @@ internal class DefaultRoutingComponent @AssistedInject constructor( val userWallets = userWalletsListRepository.userWalletsSync() return when { - userWallets.isEmpty() -> { - val shouldShowTos = !cardRepository.isTangemTOSAccepted() - if (shouldShowTos) { - AppRoute.Disclaimer(isTosAccepted = false) - } else { - AppRoute.Home(launchMode = launchMode) - } - } + userWallets.isEmpty() -> AppRoute.Home(launchMode = launchMode) userWallets.any { it.isLocked } -> { AppRoute.Welcome( launchMode = launchMode, diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/ScanCardProcessor.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/ScanCardProcessor.kt index bd97734029..edf58039d5 100644 --- a/domain/card/src/main/kotlin/com/tangem/domain/card/ScanCardProcessor.kt +++ b/domain/card/src/main/kotlin/com/tangem/domain/card/ScanCardProcessor.kt @@ -20,7 +20,6 @@ interface ScanCardProcessor { cardId: String? = null, onProgressStateChange: suspend (showProgress: Boolean) -> Unit = {}, onWalletNotCreated: suspend () -> Unit = {}, - disclaimerWillShow: () -> Unit = {}, onCancel: suspend () -> Unit = {}, onFailure: suspend (error: TangemError) -> Unit = {}, onSuccess: suspend (scanResponse: ScanResponse) -> Unit = {}, diff --git a/features/details/impl/src/main/kotlin/com/tangem/features/details/utils/UserWalletSaver.kt b/features/details/impl/src/main/kotlin/com/tangem/features/details/utils/UserWalletSaver.kt index 3e81799932..d91257187b 100644 --- a/features/details/impl/src/main/kotlin/com/tangem/features/details/utils/UserWalletSaver.kt +++ b/features/details/impl/src/main/kotlin/com/tangem/features/details/utils/UserWalletSaver.kt @@ -124,10 +124,6 @@ internal class UserWalletSaver @Inject constructor( onWalletNotCreated = { continuation.resume(Either.Right(null)) }, - disclaimerWillShow = { - continuation.resume(Either.Right(null)) - router.pop() - }, onSuccess = { continuation.resume(Either.Right(it)) }, diff --git a/features/welcome/impl/src/main/kotlin/com/tangem/features/welcome/impl/model/WelcomeModel.kt b/features/welcome/impl/src/main/kotlin/com/tangem/features/welcome/impl/model/WelcomeModel.kt index 416222e193..b9ed53b9b2 100644 --- a/features/welcome/impl/src/main/kotlin/com/tangem/features/welcome/impl/model/WelcomeModel.kt +++ b/features/welcome/impl/src/main/kotlin/com/tangem/features/welcome/impl/model/WelcomeModel.kt @@ -195,7 +195,6 @@ internal class WelcomeModel @Inject constructor( analyticsSource = AnalyticsParam.ScreensSources.SignIn, shouldCheckIsAlreadyActivated = true, onWalletNotCreated = {}, - disclaimerWillShow = { router.pop() }, onSuccess = { scanResponse -> val userWallet = coldUserWalletBuilderFactory.create(scanResponse = scanResponse).build() ?: return@scan