diff --git a/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/GiveTxPermisssionBottomSheet.kt b/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/GiveTxPermisssionBottomSheet.kt
index 0922cb2cc6..e0d8b57dd7 100644
--- a/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/GiveTxPermisssionBottomSheet.kt
+++ b/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/GiveTxPermisssionBottomSheet.kt
@@ -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 = {},
)
\ No newline at end of file
diff --git a/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/state/GiveTxPermissionState.kt b/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/state/GiveTxPermissionState.kt
index 9b07504849..5f8cc96667 100644
--- a/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/state/GiveTxPermissionState.kt
+++ b/common/ui/src/main/java/com/tangem/common/ui/bottomsheets/state/GiveTxPermissionState.kt
@@ -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,
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 952d0831fa..6b23058989 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -332,6 +332,7 @@
Available networks
My portfolio
Market
+ To generate addresses for selected networks, you need to attach a Tangem card
Select network
Select wallet
1m
diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt
index 9dad38b55e..23a67bb6a5 100644
--- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt
+++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt
@@ -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 {
val warnings = mutableListOf()
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,
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,
)