Updated on 2026-08-14
This commit is contained in:
parent
f153804a41
commit
7b76b6f575
5 changed files with 36 additions and 18 deletions
|
|
@ -1,6 +1,6 @@
|
|||
package com.tangem.common.ui.userwallet.ext
|
||||
|
||||
import com.tangem.common.ui.R
|
||||
import com.tangem.core.ui.R
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
|
||||
fun walletInterationIcon(userWallet: UserWallet): Int? {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import com.tangem.core.res.R
|
|||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.message.SnackbarMessage
|
||||
import com.tangem.common.ui.amountScreen.utils.getFiatString
|
||||
import com.tangem.common.ui.userwallet.ext.walletInterationIcon
|
||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||
import com.tangem.domain.dynamicaddresses.CreateConsolidationTransactionUseCase
|
||||
import com.tangem.domain.dynamicaddresses.IsDynamicAddressesConsolidationRequiredUseCase
|
||||
|
|
@ -20,6 +21,7 @@ import com.tangem.domain.dynamicaddresses.repository.DynamicAddressesRepository
|
|||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||
import com.tangem.domain.models.network.Network
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
import com.tangem.domain.models.wallet.isHotWallet
|
||||
import com.tangem.utils.Provider
|
||||
import com.tangem.domain.transaction.error.SendTransactionError
|
||||
import com.tangem.domain.transaction.usecase.GetFeeUseCase
|
||||
|
|
@ -66,7 +68,6 @@ internal class DynamicAddressesDelegate @AssistedInject constructor(
|
|||
|
||||
private val _bottomSheetConfig = MutableStateFlow<DynamicAddressesBottomSheetConfig>(
|
||||
DynamicAddressesBottomSheetConfig.Enable(
|
||||
isCardScanRequired = false,
|
||||
onEnableClick = {},
|
||||
),
|
||||
)
|
||||
|
|
@ -107,9 +108,9 @@ internal class DynamicAddressesDelegate @AssistedInject constructor(
|
|||
return
|
||||
}
|
||||
|
||||
val isCardScanRequired = !isXpubAlreadyDerived(network)
|
||||
val iconRes = if (!isXpubAlreadyDerived(network)) walletInterationIcon(userWallet) else null
|
||||
_bottomSheetConfig.value = DynamicAddressesBottomSheetConfig.Enable(
|
||||
isCardScanRequired = isCardScanRequired,
|
||||
iconRes = iconRes,
|
||||
onEnableClick = ::onEnableClick,
|
||||
)
|
||||
showBottomSheet()
|
||||
|
|
@ -121,7 +122,6 @@ internal class DynamicAddressesDelegate @AssistedInject constructor(
|
|||
analyticsEventHandler.send(TokenDetailsAnalyticsEvent.ButtonEnableDynamicAddresses(currency))
|
||||
coroutineScope.launch(dispatchers.main) {
|
||||
_bottomSheetConfig.value = DynamicAddressesBottomSheetConfig.Enable(
|
||||
isCardScanRequired = false,
|
||||
isLoading = true,
|
||||
onEnableClick = {},
|
||||
)
|
||||
|
|
@ -235,6 +235,8 @@ internal class DynamicAddressesDelegate @AssistedInject constructor(
|
|||
private fun showDisableSheetAndLoadFee() {
|
||||
resettableOneTimeEventSender.reset(NOT_ENOUGH_FEE_EVENT_KEY)
|
||||
_bottomSheetConfig.value = DynamicAddressesBottomSheetConfig.DisableWithConsolidation(
|
||||
iconRes = walletInterationIcon(userWallet),
|
||||
isHoldToConfirm = userWallet.isHotWallet,
|
||||
feeState = DynamicAddressesBottomSheetConfig.DisableFeeState.Loading,
|
||||
onDisableClick = ::onDisableClick,
|
||||
onRefreshFee = ::loadDisableFee,
|
||||
|
|
@ -302,6 +304,8 @@ internal class DynamicAddressesDelegate @AssistedInject constructor(
|
|||
private fun disableWithConsolidationConfig(): DynamicAddressesBottomSheetConfig.DisableWithConsolidation {
|
||||
return _bottomSheetConfig.value as? DynamicAddressesBottomSheetConfig.DisableWithConsolidation
|
||||
?: DynamicAddressesBottomSheetConfig.DisableWithConsolidation(
|
||||
iconRes = walletInterationIcon(userWallet),
|
||||
isHoldToConfirm = userWallet.isHotWallet,
|
||||
onDisableClick = ::onDisableClick,
|
||||
onRefreshFee = ::loadDisableFee,
|
||||
onReadMoreClick = ::onReadMoreClick,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.dynamicaddresses
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.compose.runtime.Immutable
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
|
||||
|
||||
|
|
@ -7,7 +8,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
|
|||
internal sealed class DynamicAddressesBottomSheetConfig : TangemBottomSheetConfigContent {
|
||||
|
||||
data class Enable(
|
||||
val isCardScanRequired: Boolean,
|
||||
@DrawableRes val iconRes: Int? = null,
|
||||
val isLoading: Boolean = false,
|
||||
val onEnableClick: () -> Unit,
|
||||
) : DynamicAddressesBottomSheetConfig()
|
||||
|
|
@ -18,6 +19,8 @@ internal sealed class DynamicAddressesBottomSheetConfig : TangemBottomSheetConfi
|
|||
) : DynamicAddressesBottomSheetConfig()
|
||||
|
||||
data class DisableWithConsolidation(
|
||||
@DrawableRes val iconRes: Int? = null,
|
||||
val isHoldToConfirm: Boolean = false,
|
||||
val feeState: DisableFeeState = DisableFeeState.Loading,
|
||||
val isSending: Boolean = false,
|
||||
val onDisableClick: () -> Unit,
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.text.withLink
|
||||
import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import com.tangem.core.ui.components.HoldToConfirmButton
|
||||
import com.tangem.core.ui.components.PrimaryButton
|
||||
import com.tangem.core.ui.components.PrimaryButtonIconEnd
|
||||
import com.tangem.core.ui.components.TextShimmer
|
||||
|
|
@ -92,7 +93,7 @@ internal fun DynamicAddressesEnableContent(content: DynamicAddressesBottomSheetC
|
|||
|
||||
PrimaryButtonIconEnd(
|
||||
text = stringResourceSafe(id = R.string.dynamic_addresses_enter_main_button_title),
|
||||
iconResId = if (content.isCardScanRequired) CoreR.drawable.ic_tangem_24 else null,
|
||||
iconResId = content.iconRes,
|
||||
onClick = content.onEnableClick,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
showProgress = content.isLoading,
|
||||
|
|
@ -169,14 +170,24 @@ internal fun DynamicAddressesDisableWithConsolidationContent(
|
|||
|
||||
Spacer(modifier = Modifier.height(TangemTheme.dimens.spacing24))
|
||||
|
||||
PrimaryButtonIconEnd(
|
||||
text = stringResourceSafe(id = R.string.dynamic_addresses_disable_main_button_title),
|
||||
iconResId = CoreR.drawable.ic_tangem_24,
|
||||
onClick = content.onDisableClick,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
showProgress = content.isSending,
|
||||
enabled = isConfirmEnabled,
|
||||
)
|
||||
if (content.isHoldToConfirm) {
|
||||
HoldToConfirmButton(
|
||||
text = stringResourceSafe(id = R.string.dynamic_addresses_disable_main_button_title),
|
||||
onConfirm = content.onDisableClick,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
enabled = isConfirmEnabled,
|
||||
isLoading = content.isSending,
|
||||
)
|
||||
} else {
|
||||
PrimaryButtonIconEnd(
|
||||
text = stringResourceSafe(id = R.string.dynamic_addresses_disable_main_button_title),
|
||||
iconResId = content.iconRes,
|
||||
onClick = content.onDisableClick,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
showProgress = content.isSending,
|
||||
enabled = isConfirmEnabled,
|
||||
)
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(TangemTheme.dimens.spacing16))
|
||||
}
|
||||
|
|
@ -398,7 +409,7 @@ private fun Preview_Enable() {
|
|||
TangemThemePreview {
|
||||
DynamicAddressesEnableContent(
|
||||
content = DynamicAddressesBottomSheetConfig.Enable(
|
||||
isCardScanRequired = false,
|
||||
iconRes = null,
|
||||
onEnableClick = {},
|
||||
),
|
||||
)
|
||||
|
|
@ -412,7 +423,7 @@ private fun Preview_EnableWithCardScan() {
|
|||
TangemThemePreview {
|
||||
DynamicAddressesEnableContent(
|
||||
content = DynamicAddressesBottomSheetConfig.Enable(
|
||||
isCardScanRequired = true,
|
||||
iconRes = CoreR.drawable.ic_tangem_24,
|
||||
onEnableClick = {},
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# https://github.com/tangem/tangem-sdk-android/
|
||||
# https://github.com/tangem/vico
|
||||
|
||||
tangemBlockchainSdk = "develop-1506"
|
||||
tangemBlockchainSdk = "develop-1509"
|
||||
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
|
||||
tangemCardSdk = "develop-614"
|
||||
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue