diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index 0cf3af21e6..e80938f7d9 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit 0cf3af21e6f441e6323a1ba127ee7518168797df +Subproject commit e80938f7d9ba378a91ac544a9170597e64afa696 diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt index 22bbd11511..0f9b8982dc 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt @@ -100,7 +100,7 @@ class DetailsMiddleware { store.dispatch(NavigationAction.PopBackTo()) } is DetailsAction.EraseWallet.Confirm -> { - val card = store.state.detailsState.card ?: return + val card = store.state.detailsState.scanResponse?.card ?: return scope.launch { val result = tangemSdkManager.eraseWallet(card) withContext(Dispatchers.Main) { @@ -113,7 +113,7 @@ class DetailsMiddleware { FirebaseAnalyticsHandler.logCardSdkError( error, FirebaseAnalyticsHandler.ActionToLog.PurgeWallet, - card = store.state.detailsState.card + card = store.state.detailsState.scanResponse?.card ) } } @@ -170,7 +170,7 @@ class DetailsMiddleware { } } is DetailsAction.ManageSecurity.SaveChanges -> { - val cardId = store.state.detailsState.card?.cardId + val cardId = store.state.detailsState.scanResponse?.card?.cardId val selectedOption = store.state.detailsState.securityScreenState?.selectedOption scope.launch { val result = when (selectedOption) { @@ -199,7 +199,7 @@ class DetailsMiddleware { FirebaseAnalyticsHandler.AnalyticsParam.NEW_SECURITY_OPTION to (selectedOption?.name ?: "") ), - card = store.state.detailsState.card + card = store.state.detailsState.scanResponse?.card ) } store.dispatch(DetailsAction.ManageSecurity.SaveChanges.Failure) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt index d2622417f7..76e8ca7da9 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt @@ -41,7 +41,7 @@ private fun internalReduce(action: Action, state: AppState): DetailsState { private fun handlePrepareScreen(action: DetailsAction.PrepareScreen, state: DetailsState): DetailsState { return DetailsState( - card = action.scanResponse.card, + scanResponse = action.scanResponse, wallets = action.wallets, cardInfo = action.scanResponse.card.toCardInfo(), appCurrencyState = AppCurrencyState(action.fiatCurrencyName), @@ -52,8 +52,10 @@ private fun handlePrepareScreen(action: DetailsAction.PrepareScreen, state: Deta private fun handleEraseWallet(action: DetailsAction.EraseWallet, state: DetailsState): DetailsState { return when (action) { DetailsAction.EraseWallet.Check -> { - val notAllowedByAnyWallet = state.card?.wallets?.any { it.settings.isPermanent } ?: false - val notAllowedByCard = notAllowedByAnyWallet || state.card?.isWalletDataSupported == true + val card = state.scanResponse?.card + val notAllowedByAnyWallet = card?.wallets?.any { it.settings.isPermanent } ?: false + val notAllowedByCard = notAllowedByAnyWallet || + (card?.isWalletDataSupported == true && !state.scanResponse.isTangemNote()) val notEmpty = state.wallets.any { it.hasPendingTransactions() || it.amounts.toSendableAmounts().isNotEmpty() } @@ -129,7 +131,7 @@ private fun handleSecurityAction( } val allowedSecurityOptions = prepareAllowedSecurityOptions( - state.card, state.securityScreenState?.currentOption + state.scanResponse?.card, state.securityScreenState?.currentOption ) state.copy(securityScreenState = state.securityScreenState?.copy( allowedOptions = allowedSecurityOptions, @@ -154,7 +156,7 @@ private fun handleSecurityAction( state.copy( securityScreenState = state.securityScreenState?.copy( currentOption = state.securityScreenState.selectedOption, - allowedOptions = state.card?.let { + allowedOptions = state.scanResponse?.card?.let { prepareAllowedSecurityOptions( it, state.securityScreenState.selectedOption ) @@ -189,7 +191,7 @@ private fun prepareAllowedSecurityOptions( } -private fun Card.toCardInfo(): CardInfo? { +private fun Card.toCardInfo(): CardInfo { val cardId = this.cardId.chunked(4).joinToString(separator = " ") val issuer = this.issuer.name val signedHashes = this.signedHashesCount() diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt index 40f409c680..cad9493b63 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt @@ -2,10 +2,10 @@ package com.tangem.tap.features.details.redux import android.net.Uri import com.tangem.blockchain.common.Wallet -import com.tangem.common.card.Card import com.tangem.tap.common.entities.Button import com.tangem.tap.common.entities.TapCurrency.Companion.DEFAULT_FIAT_CURRENCY import com.tangem.tap.common.redux.global.FiatCurrencyName +import com.tangem.tap.domain.tasks.product.ScanResponse import com.tangem.tap.features.onboarding.products.twins.redux.TwinCardsState import com.tangem.tap.network.coinmarketcap.FiatCurrency import com.tangem.tap.store @@ -14,7 +14,7 @@ import java.util.* import kotlin.properties.ReadOnlyProperty data class DetailsState( - val card: Card? = null, + val scanResponse: ScanResponse? = null, val wallets: List = emptyList(), val cardInfo: CardInfo? = null, val appCurrencyState: AppCurrencyState = AppCurrencyState(), diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt index ac9be2e1a0..6f7eb15b43 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt @@ -67,7 +67,7 @@ class DetailsFragment : Fragment(R.layout.fragment_details), StoreSubscriber - + \ No newline at end of file