From 9fee474c903e63cf853ba1603e6e40232d6ccc45 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 12 Jul 2024 16:19:45 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../GiveTxPermisssionBottomSheet.kt | 42 +++++++------------ .../state/GiveTxPermissionState.kt | 2 + core/res/src/main/res/values/strings.xml | 1 + .../tangem/feature/swap/ui/StateBuilder.kt | 18 ++++++-- 4 files changed, 33 insertions(+), 30 deletions(-) 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, )