Updated on 2026-08-14
This commit is contained in:
commit
f48154daa9
4 changed files with 33 additions and 30 deletions
|
|
@ -69,10 +69,7 @@ private fun GiveTxPermissionBottomSheetContent(content: GiveTxPermissionBottomSh
|
|||
),
|
||||
)
|
||||
Text(
|
||||
text = stringResource(
|
||||
id = R.string.give_permission_swap_subtitle,
|
||||
data.currency,
|
||||
),
|
||||
text = content.data.subtitle.resolveReference(),
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
style = TangemTheme.typography.body2,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -109,8 +106,8 @@ private fun GiveTxPermissionBottomSheetContent(content: GiveTxPermissionBottomSh
|
|||
// region dialog
|
||||
if (isPermissionAlertShow) {
|
||||
BasicDialog(
|
||||
message = stringResource(id = R.string.swapping_approve_information_text),
|
||||
title = stringResource(id = R.string.swapping_approve_information_title),
|
||||
message = content.data.dialogText.resolveReference(),
|
||||
title = stringResource(id = R.string.common_approve),
|
||||
confirmButton = DialogButton { isPermissionAlertShow = false },
|
||||
onDismissDialog = {},
|
||||
)
|
||||
|
|
@ -210,26 +207,17 @@ private fun AmountItem(
|
|||
style = TangemTheme.typography.subtitle1,
|
||||
maxLines = 1,
|
||||
)
|
||||
when (approveType) {
|
||||
ApproveType.LIMITED -> {
|
||||
Text(
|
||||
text = stringResource(id = R.string.give_permission_current_transaction),
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
style = TangemTheme.typography.body1,
|
||||
maxLines = 1,
|
||||
)
|
||||
}
|
||||
ApproveType.UNLIMITED -> {
|
||||
Icon(
|
||||
painter = rememberVectorPainter(
|
||||
image = ImageVector.vectorResource(id = R.drawable.ic_infinity_24),
|
||||
),
|
||||
tint = TangemTheme.colors.text.tertiary,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(TangemTheme.dimens.size20),
|
||||
)
|
||||
}
|
||||
}
|
||||
Text(
|
||||
text = stringResource(
|
||||
when (approveType) {
|
||||
ApproveType.LIMITED -> R.string.give_permission_current_transaction
|
||||
ApproveType.UNLIMITED -> R.string.give_permission_unlimited
|
||||
},
|
||||
),
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
style = TangemTheme.typography.body1,
|
||||
maxLines = 1,
|
||||
)
|
||||
}
|
||||
DropdownSelector(
|
||||
isExpanded = isExpandSelector,
|
||||
|
|
@ -335,6 +323,8 @@ private val previewData = GiveTxPermissionBottomSheetConfig(
|
|||
approveButton = ApprovePermissionButton(true) {},
|
||||
cancelButton = CancelPermissionButton(true),
|
||||
onChangeApproveType = { ApproveType.UNLIMITED },
|
||||
subtitle = resourceReference(R.string.give_permission_staking_subtitle),
|
||||
dialogText = resourceReference(R.string.give_permission_staking_footer),
|
||||
),
|
||||
onCancel = {},
|
||||
)
|
||||
|
|
@ -11,6 +11,8 @@ sealed class GiveTxPermissionState {
|
|||
data object Empty : GiveTxPermissionState()
|
||||
|
||||
data class ReadyForRequest(
|
||||
val subtitle: TextReference,
|
||||
val dialogText: TextReference,
|
||||
val currency: String,
|
||||
val amount: String,
|
||||
val walletAddress: String,
|
||||
|
|
|
|||
|
|
@ -332,6 +332,7 @@
|
|||
<string name="markets_available_networks">Available networks</string>
|
||||
<string name="markets_common_my_portfolio">My portfolio</string>
|
||||
<string name="markets_common_title">Market</string>
|
||||
<string name="markets_generate_addresses_notification">To generate addresses for selected networks, you need to attach a Tangem card</string>
|
||||
<string name="markets_select_network">Select network</string>
|
||||
<string name="markets_select_wallet">Select wallet</string>
|
||||
<string name="markets_selector_interval_1m_title">1m</string>
|
||||
|
|
|
|||
|
|
@ -218,6 +218,7 @@ internal class StateBuilder(
|
|||
quoteModel = quoteModel,
|
||||
fromToken = fromToken,
|
||||
selectedFeeType = selectedFeeType,
|
||||
providerName = swapProvider.name,
|
||||
)
|
||||
val feeState = createFeeState(quoteModel.txFee, selectedFeeType)
|
||||
val fromCurrencyStatus = quoteModel.fromTokenInfo.cryptoCurrencyStatus
|
||||
|
|
@ -258,6 +259,7 @@ internal class StateBuilder(
|
|||
permissionState = convertPermissionState(
|
||||
lastPermissionState = uiStateHolder.permissionState,
|
||||
permissionDataState = quoteModel.permissionState,
|
||||
providerName = swapProvider.name,
|
||||
onGivePermissionClick = actions.onGivePermissionClick,
|
||||
onChangeApproveType = actions.onChangeApproveType,
|
||||
),
|
||||
|
|
@ -317,11 +319,12 @@ internal class StateBuilder(
|
|||
quoteModel: SwapState.QuotesLoadedState,
|
||||
fromToken: CryptoCurrency,
|
||||
selectedFeeType: FeeType,
|
||||
providerName: String,
|
||||
): List<SwapWarning> {
|
||||
val warnings = mutableListOf<SwapWarning>()
|
||||
maybeAddDomainWarnings(quoteModel, warnings)
|
||||
maybeAddNeedReserveToCreateAccountWarning(quoteModel, warnings)
|
||||
maybeAddPermissionNeededWarning(quoteModel, warnings, fromToken)
|
||||
maybeAddPermissionNeededWarning(quoteModel, warnings, fromToken, providerName)
|
||||
maybeAddNetworkFeeCoverageWarning(quoteModel, warnings, selectedFeeType)
|
||||
maybeAddUnableCoverFeeWarning(quoteModel, fromToken, warnings)
|
||||
maybeAddInsufficientFundsWarning(quoteModel, warnings)
|
||||
|
|
@ -469,6 +472,7 @@ internal class StateBuilder(
|
|||
quoteModel: SwapState.QuotesLoadedState,
|
||||
warnings: MutableList<SwapWarning>,
|
||||
fromToken: CryptoCurrency,
|
||||
providerName: String,
|
||||
) {
|
||||
if (!quoteModel.preparedSwapConfigState.isAllowedToSpend &&
|
||||
quoteModel.preparedSwapConfigState.feeState is SwapFeeState.Enough &&
|
||||
|
|
@ -476,7 +480,7 @@ internal class StateBuilder(
|
|||
) {
|
||||
warnings.add(
|
||||
SwapWarning.PermissionNeeded(
|
||||
createPermissionNotificationConfig(fromToken.symbol),
|
||||
createPermissionNotificationConfig(providerName, fromToken.symbol),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
@ -1147,6 +1151,7 @@ internal class StateBuilder(
|
|||
private fun convertPermissionState(
|
||||
lastPermissionState: GiveTxPermissionState,
|
||||
permissionDataState: PermissionDataState,
|
||||
providerName: String,
|
||||
onGivePermissionClick: () -> Unit,
|
||||
onChangeApproveType: (ApproveType) -> Unit,
|
||||
): GiveTxPermissionState {
|
||||
|
|
@ -1180,6 +1185,11 @@ internal class StateBuilder(
|
|||
enabled = true,
|
||||
),
|
||||
onChangeApproveType = onChangeApproveType,
|
||||
subtitle = resourceReference(
|
||||
id = R.string.give_permission_swap_subtitle,
|
||||
formatArgs = wrappedList(providerName, permissionDataState.currency),
|
||||
),
|
||||
dialogText = resourceReference(R.string.swapping_approve_information_text),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -1403,12 +1413,12 @@ internal class StateBuilder(
|
|||
}
|
||||
|
||||
// region warnings
|
||||
private fun createPermissionNotificationConfig(fromTokenSymbol: String): NotificationConfig {
|
||||
private fun createPermissionNotificationConfig(providerName: String, fromTokenSymbol: String): NotificationConfig {
|
||||
return NotificationConfig(
|
||||
title = resourceReference(R.string.express_provider_permission_needed),
|
||||
subtitle = resourceReference(
|
||||
id = R.string.give_permission_swap_subtitle,
|
||||
formatArgs = wrappedList(fromTokenSymbol),
|
||||
formatArgs = wrappedList(providerName, fromTokenSymbol),
|
||||
),
|
||||
iconResId = R.drawable.ic_locked_24,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue