diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt index a6c39d4f3c..24566a94f8 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt @@ -18,6 +18,7 @@ internal sealed class WalletConnect( AnalyticsParam.SOURCE to when (source) { SourceType.QR -> "QR" SourceType.DEEPLINK -> "DeepLink" + SourceType.CLIPBOARD -> "Clipboard" SourceType.ETC -> "etc" }, ), diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt index 9b88770588..5fe143f6c7 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt @@ -459,7 +459,7 @@ internal class DefaultLegacyWalletConnectRepository( val session = currentSessions.find { it.topic == requestData.topic } analyticsHandler.send( - WalletConnect.SignatureRequestHandled( + WalletConnect.SignatureRequestFailed( WalletConnect.RequestHandledParams( dAppName = session?.name ?: "", dAppUrl = session?.url ?: "", diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt index 89437fadf4..7391c77f5b 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt @@ -15,7 +15,7 @@ sealed class WalletConnectAction : Action { val wcUri: String, val source: SourceType, ) : WalletConnectAction() { - enum class SourceType { QR, DEEPLINK, ETC } + enum class SourceType { QR, DEEPLINK, CLIPBOARD, ETC } } data class DisconnectSession(val topic: String) : WalletConnectAction() diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/model/SendModel.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/model/SendModel.kt index 5cc5ccdcee..882cbbae9a 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/model/SendModel.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/model/SendModel.kt @@ -512,6 +512,20 @@ internal class SendModel @Inject constructor( override fun onNextClick(isFromEdit: Boolean) { val currentState = stateRouter.currentState.value + when (currentState.type) { + SendUiStateType.Fee, + SendUiStateType.EditFee, + -> if (uiState.value.feeState?.isPrimaryButtonEnabled == false) return + SendUiStateType.Amount, + SendUiStateType.EditAmount, + -> if (!uiState.value.amountState.isPrimaryButtonEnabled) return + SendUiStateType.Recipient, + SendUiStateType.EditRecipient, + -> if (uiState.value.recipientState?.isPrimaryButtonEnabled == false) return + SendUiStateType.Send -> if (uiState.value.sendState?.isPrimaryButtonEnabled == false) return + SendUiStateType.None -> return + } + uiState.value = stateFactory.syncEditStates(isFromEdit = isFromEdit) sendScreenAnalyticSender.send(currentState.type, uiState.value) when (currentState.type) { diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountChangeStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountChangeStateTransformer.kt index 7ff0dc011e..e905b0b0a5 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountChangeStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountChangeStateTransformer.kt @@ -40,6 +40,7 @@ internal class AmountChangeStateTransformer( return prevState.copy( amountState = AmountRequirementStateTransformer( cryptoCurrencyStatus = cryptoCurrencyStatus, + maxAmount = maxEnterAmount, yield = yield, actionType = prevState.actionType, ).transform(updatedAmountState), diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountMaxValueStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountMaxValueStateTransformer.kt index aee3d92b78..318d0c6522 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountMaxValueStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountMaxValueStateTransformer.kt @@ -36,6 +36,7 @@ internal class AmountMaxValueStateTransformer( ).transform(prevState.amountState) return prevState.copy( amountState = AmountRequirementStateTransformer( + maxAmount = maxEnterAmount, cryptoCurrencyStatus = cryptoCurrencyStatus, yield = yield, actionType = prevState.actionType, diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt index d8ab56f5a9..6bf5ef4134 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt @@ -4,6 +4,7 @@ import androidx.annotation.StringRes import androidx.compose.ui.text.input.ImeAction import com.tangem.common.extensions.isZero import com.tangem.common.ui.amountScreen.models.AmountState +import com.tangem.common.ui.amountScreen.models.EnterAmountBoundary import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.wrappedList @@ -24,6 +25,7 @@ import java.math.RoundingMode internal class AmountRequirementStateTransformer( private val cryptoCurrencyStatus: CryptoCurrencyStatus, + private val maxAmount: EnterAmountBoundary, private val yield: Yield, private val actionType: StakingActionCommonType, ) : Transformer { @@ -121,7 +123,7 @@ internal class AmountRequirementStateTransformer( val isExceedsMaxRequirement = if (maximum?.isPositive() == true) { maximum?.compareTo(amount) == -1 } else { - cryptoCurrencyStatus.value.amount?.compareTo(amount) == -1 + maxAmount.amount?.compareTo(amount) == -1 } val errorText = when {