From d6333458fa2b22f290a4c6828cb4eaa8f145066f Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 1 Jun 2026 18:58:08 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../configs/feature_toggles_config.json | 4 ++ .../com/tangem/core/ui/res/TangemTheme.kt | 4 ++ .../tangempay/TangemPayFeatureToggles.kt | 4 +- .../DefaultTangemPayFeatureToggles.kt | 10 ++++- .../TangemPayCardPageScreenComponent.kt | 20 ++++++---- .../components/TangemPayDetailsComponent.kt | 38 ++++++++++--------- ...faultTangemPayCardDetailsBlockComponent.kt | 6 ++- .../tangempay/di/TangemPayDetailsModule.kt | 5 ++- .../model/TangemPayCardDetailsBlockModel.kt | 4 ++ .../tangempay/model/TangemPayCardPageModel.kt | 12 +++--- .../tangempay/model/TangemPayDetailsModel.kt | 8 +++- .../tangempay/ui/TangemPayAddToWalletBlock.kt | 4 +- .../tangempay/ui/TangemPayCardDetailsBlock.kt | 12 +++--- .../tangempay/ui/TangemPayCardPageScreen.kt | 18 ++++----- .../tangempay/ui/TangemPayDailyLimitBlock.kt | 14 +++---- 15 files changed, 101 insertions(+), 62 deletions(-) diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index 2fe3cc2043..4beb689f05 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -122,5 +122,9 @@ { "name": "AND_15258_QUICK_TOP_UP_ENABLED", "version": "undefined" + }, + { + "name": "AND_15368_VISA_PAY_REDESIGN", + "version": "undefined" } ] diff --git a/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt b/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt index 286eda1a58..dc689a98df 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt @@ -464,6 +464,10 @@ val LocalRedesignEnabled = staticCompositionLocalOf { false } +val LocalVisaRedesignEnabled = staticCompositionLocalOf { + false +} + val LocalPowerSavingState = compositionLocalOf { error("No PowerSavingState provided") } diff --git a/features/tangempay/details/api/src/main/kotlin/com/tangem/features/tangempay/TangemPayFeatureToggles.kt b/features/tangempay/details/api/src/main/kotlin/com/tangem/features/tangempay/TangemPayFeatureToggles.kt index aca7d9b879..c2f6f12c37 100644 --- a/features/tangempay/details/api/src/main/kotlin/com/tangem/features/tangempay/TangemPayFeatureToggles.kt +++ b/features/tangempay/details/api/src/main/kotlin/com/tangem/features/tangempay/TangemPayFeatureToggles.kt @@ -1,3 +1,5 @@ package com.tangem.features.tangempay -interface TangemPayFeatureToggles \ No newline at end of file +interface TangemPayFeatureToggles { + val isRedesignEnabled: Boolean +} \ No newline at end of file diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/DefaultTangemPayFeatureToggles.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/DefaultTangemPayFeatureToggles.kt index e8a0c42caf..3512628da8 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/DefaultTangemPayFeatureToggles.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/DefaultTangemPayFeatureToggles.kt @@ -1,3 +1,11 @@ package com.tangem.features.tangempay -internal class DefaultTangemPayFeatureToggles : TangemPayFeatureToggles \ No newline at end of file +import com.tangem.core.configtoggle.FeatureToggles +import com.tangem.core.configtoggle.feature.FeatureTogglesManager + +internal class DefaultTangemPayFeatureToggles( + private val featureTogglesManager: FeatureTogglesManager, +) : TangemPayFeatureToggles { + override val isRedesignEnabled: Boolean + get() = featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15368_VISA_PAY_REDESIGN) +} \ No newline at end of file diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayCardPageScreenComponent.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayCardPageScreenComponent.kt index b68a2c3d74..7e5dc2eada 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayCardPageScreenComponent.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayCardPageScreenComponent.kt @@ -1,6 +1,7 @@ package com.tangem.features.tangempay.components import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -15,6 +16,7 @@ import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.components.NavigationBar3ButtonsScrim import com.tangem.core.ui.decompose.ComposableBottomSheetComponent import com.tangem.core.ui.decompose.ComposableContentComponent +import com.tangem.core.ui.res.LocalVisaRedesignEnabled import com.tangem.features.tangempay.components.cardDetails.DefaultTangemPayCardDetailsBlockComponent import com.tangem.features.tangempay.components.cardDetails.TangemPayCardDetailsBlockComponent import com.tangem.features.tangempay.entity.TangemPayCardNavigation @@ -54,14 +56,16 @@ internal class TangemPayCardPageScreenComponent( val cardDetailsState by cardDetailsBlockComponent.state.collectAsStateWithLifecycle() val bottomSheet by bottomSheetSlot.subscribeAsState() - NavigationBar3ButtonsScrim() - TangemPayCardPageScreen( - state = state, - cardDetailsBlockComponent = cardDetailsBlockComponent, - cardDetailsState = cardDetailsState, - modifier = modifier, - ) - bottomSheet.child?.instance?.BottomSheet() + CompositionLocalProvider(LocalVisaRedesignEnabled provides model.isRedesignEnabled()) { + NavigationBar3ButtonsScrim() + TangemPayCardPageScreen( + state = state, + cardDetailsBlockComponent = cardDetailsBlockComponent, + cardDetailsState = cardDetailsState, + modifier = modifier, + ) + bottomSheet.child?.instance?.BottomSheet() + } } private fun bottomSheetChild( diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayDetailsComponent.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayDetailsComponent.kt index abff694265..32d51fc424 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayDetailsComponent.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/TangemPayDetailsComponent.kt @@ -1,6 +1,7 @@ package com.tangem.features.tangempay.components import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -16,7 +17,7 @@ import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.components.NavigationBar3ButtonsScrim import com.tangem.core.ui.decompose.ComposableBottomSheetComponent import com.tangem.core.ui.decompose.ComposableContentComponent -import com.tangem.core.ui.res.LocalRedesignEnabled +import com.tangem.core.ui.res.LocalVisaRedesignEnabled import com.tangem.features.tangempay.components.txHistory.DefaultTangemPayTxHistoryComponent import com.tangem.features.tangempay.components.txHistory.TangemPayTxHistoryDetailsComponent import com.tangem.features.tangempay.entity.TangemPayDetailsNavigation @@ -72,24 +73,25 @@ internal class TangemPayDetailsComponent( override fun Content(modifier: Modifier) { val state by model.uiState.collectAsStateWithLifecycle() val bottomSheet by bottomSheetSlot.subscribeAsState() - - NavigationBar3ButtonsScrim() - if (LocalRedesignEnabled.current) { - TangemPayDetailsScreenV2( - state = state, - txHistoryComponent = txHistoryComponent, - expressTransactionsComponent = expressTransactionsComponent, - modifier = modifier, - ) - } else { - TangemPayDetailsScreen( - state = state, - txHistoryComponent = txHistoryComponent, - expressTransactionsComponent = expressTransactionsComponent, - modifier = modifier, - ) + CompositionLocalProvider(LocalVisaRedesignEnabled provides model.isRedesignEnabled()) { + NavigationBar3ButtonsScrim() + if (LocalVisaRedesignEnabled.current) { + TangemPayDetailsScreenV2( + state = state, + txHistoryComponent = txHistoryComponent, + expressTransactionsComponent = expressTransactionsComponent, + modifier = modifier, + ) + } else { + TangemPayDetailsScreen( + state = state, + txHistoryComponent = txHistoryComponent, + expressTransactionsComponent = expressTransactionsComponent, + modifier = modifier, + ) + } + bottomSheet.child?.instance?.BottomSheet() } - bottomSheet.child?.instance?.BottomSheet() } private fun bottomSheetChild( diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/cardDetails/DefaultTangemPayCardDetailsBlockComponent.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/cardDetails/DefaultTangemPayCardDetailsBlockComponent.kt index 95e5cae0d4..bbe8e07c3f 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/cardDetails/DefaultTangemPayCardDetailsBlockComponent.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/cardDetails/DefaultTangemPayCardDetailsBlockComponent.kt @@ -1,9 +1,11 @@ package com.tangem.features.tangempay.components.cardDetails import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.model.getOrCreateModel +import com.tangem.core.ui.res.LocalVisaRedesignEnabled import com.tangem.features.tangempay.entity.TangemPayCardDetailsUM import com.tangem.features.tangempay.model.TangemPayCardDetailsBlockModel import com.tangem.features.tangempay.ui.TangemPayCard @@ -19,6 +21,8 @@ internal class DefaultTangemPayCardDetailsBlockComponent( @Composable override fun CardDetailsBlockContent(state: TangemPayCardDetailsUM, modifier: Modifier) { - TangemPayCard(state, modifier) + CompositionLocalProvider(LocalVisaRedesignEnabled provides model.isRedesignEnabled()) { + TangemPayCard(state, modifier) + } } } \ No newline at end of file diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/di/TangemPayDetailsModule.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/di/TangemPayDetailsModule.kt index 6f0b9ea597..a6ea142d28 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/di/TangemPayDetailsModule.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/di/TangemPayDetailsModule.kt @@ -1,5 +1,6 @@ package com.tangem.features.tangempay.di +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.features.tangempay.DefaultTangemPayFeatureToggles import com.tangem.features.tangempay.TangemPayFeatureToggles import dagger.Module @@ -14,7 +15,7 @@ internal object TangemPayDetailsModule { @Provides @Singleton - fun provideTangemPayFeatureToggles(): TangemPayFeatureToggles { - return DefaultTangemPayFeatureToggles() + fun provideTangemPayFeatureToggles(featureTogglesManager: FeatureTogglesManager): TangemPayFeatureToggles { + return DefaultTangemPayFeatureToggles(featureTogglesManager) } } \ No newline at end of file diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt index c421579229..664be22e7a 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt @@ -17,6 +17,7 @@ import com.tangem.domain.models.pay.TangemPayCardState import com.tangem.domain.pay.flow.PaymentAccountStatusSupplier import com.tangem.domain.pay.repository.TangemPayCardDetailsRepository import com.tangem.domain.tangempay.TangemPayAnalyticsEvents +import com.tangem.features.tangempay.TangemPayFeatureToggles import com.tangem.features.tangempay.components.cardDetails.TangemPayCardDetailsBlockComponent import com.tangem.features.tangempay.details.impl.R import com.tangem.features.tangempay.entity.TangemPayCardDetailsBlockStateFactory @@ -57,6 +58,7 @@ internal class TangemPayCardDetailsBlockModel @Inject constructor( private val analytics: AnalyticsEventHandler, private val router: Router, private val paymentAccountStatusSupplier: PaymentAccountStatusSupplier, + private val payFeatureToggles: TangemPayFeatureToggles, ) : Model() { private val params: TangemPayCardDetailsBlockComponent.Params = paramsContainer.require() @@ -90,6 +92,8 @@ internal class TangemPayCardDetailsBlockModel @Inject constructor( } } + fun isRedesignEnabled(): Boolean = payFeatureToggles.isRedesignEnabled + private fun subscribeToCardChanges() { paymentAccountStatusSupplier.invoke(params.userWalletId) .onEach { state -> diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt index a658dbd11a..cae5f6b219 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt @@ -12,7 +12,6 @@ import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.ui.UiMessageSender -import com.tangem.core.ui.DesignFeatureToggles import com.tangem.core.ui.ds.image.TangemIconUM import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference @@ -35,6 +34,7 @@ import com.tangem.domain.pay.model.TangemPayTopUpData import com.tangem.domain.pay.repository.TangemPayCardDetailsRepository import com.tangem.domain.pay.usecase.ChangeCardFrozenStateUseCase import com.tangem.domain.tangempay.TangemPayAnalyticsEvents +import com.tangem.features.tangempay.TangemPayFeatureToggles import com.tangem.features.tangempay.components.AddFundsListener import com.tangem.features.tangempay.components.ReissueCardListener import com.tangem.features.tangempay.components.TangemPayCardPageComponent @@ -68,8 +68,8 @@ internal class TangemPayCardPageModel @Inject constructor( private val cardDetailsRepository: TangemPayCardDetailsRepository, private val uiMessageSender: UiMessageSender, private val changeCardFrozenStateUseCase: ChangeCardFrozenStateUseCase, - private val designFeatureToggles: DesignFeatureToggles, private val cardDetailsEventListener: CardDetailsEventListener, + private val tangemPayFeatureToggles: TangemPayFeatureToggles, ) : Model(), ViewPinListener, ReissueCardListener, AddFundsListener { private val params: TangemPayCardPageComponent.Params = paramsContainer.require() @@ -136,8 +136,10 @@ internal class TangemPayCardPageModel @Inject constructor( .launchIn(modelScope) } + fun isRedesignEnabled(): Boolean = tangemPayFeatureToggles.isRedesignEnabled + private fun buildSettings(card: TangemPayCard): ImmutableList { - if (designFeatureToggles.isRedesignEnabled) return persistentListOf() + if (isRedesignEnabled()) return persistentListOf() return persistentListOf( TangemPayCardPageSetting( title = TextReference.Res(R.string.tangempay_card_details_change_pin), @@ -163,7 +165,7 @@ internal class TangemPayCardPageModel @Inject constructor( } private suspend fun subscribeOnDetailsState() { - if (!designFeatureToggles.isRedesignEnabled) return + if (!isRedesignEnabled()) return cardDetailsEventListener.event.collect { event -> val isDetailsShown = event == CardDetailsEvent.Show uiState.update { state -> @@ -183,7 +185,7 @@ internal class TangemPayCardPageModel @Inject constructor( } private fun buildSettingsV2(card: TangemPayCard): ImmutableList { - if (!designFeatureToggles.isRedesignEnabled) return persistentListOf() + if (!isRedesignEnabled()) return persistentListOf() return persistentListOf( TangemPayCardPageSettingV2( id = TangemPayCardPageSettingV2.Id.Details, diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt index e1510b531d..16f9436d7d 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt @@ -23,16 +23,17 @@ import com.tangem.domain.models.StatusSource import com.tangem.domain.models.TokenReceiveConfig import com.tangem.domain.models.account.PaymentAccountStatusValue import com.tangem.domain.models.currency.CryptoCurrency +import com.tangem.domain.models.pay.TangemPayCardFrozenState +import com.tangem.domain.models.pay.TangemPayCardState import com.tangem.domain.pay.flow.PaymentAccountStatusSupplier import com.tangem.domain.pay.model.TangemPayCardBalance import com.tangem.domain.pay.model.TangemPayTopUpData import com.tangem.domain.pay.repository.TangemPayCardDetailsRepository import com.tangem.domain.pay.repository.TangemPayWithdrawRepository import com.tangem.domain.tangempay.TangemPayAnalyticsEvents -import com.tangem.domain.models.pay.TangemPayCardFrozenState -import com.tangem.domain.models.pay.TangemPayCardState import com.tangem.domain.visa.model.TangemPayTxHistoryItem import com.tangem.features.tangempay.TangemPayConstants +import com.tangem.features.tangempay.TangemPayFeatureToggles import com.tangem.features.tangempay.components.AddFundsListener import com.tangem.features.tangempay.components.TangemPayDetailsContainerComponent import com.tangem.features.tangempay.entity.TangemPayDetailsErrorType @@ -74,6 +75,7 @@ internal class TangemPayDetailsModel @Inject constructor( private val tangemPayWithdrawRepository: TangemPayWithdrawRepository, private val sendFeedbackEmailUseCase: SendFeedbackEmailUseCase, private val expressTransactionsEventListener: ExpressTransactionsEventListener, + private val tangemPayFeatureToggles: TangemPayFeatureToggles, ) : Model(), TangemPayTxHistoryUiActions, TangemPayDetailIntents, AddFundsListener { private val params: TangemPayDetailsContainerComponent.Params = paramsContainer.require() @@ -151,6 +153,8 @@ internal class TangemPayDetailsModel @Inject constructor( } } + fun isRedesignEnabled(): Boolean = tangemPayFeatureToggles.isRedesignEnabled + private fun subscribeToCardFrozenState(cardId: String) { cardDetailsRepository .cardFrozenState(cardId) diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayAddToWalletBlock.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayAddToWalletBlock.kt index 8388e6a2c4..97319e8e05 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayAddToWalletBlock.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayAddToWalletBlock.kt @@ -23,7 +23,7 @@ import com.tangem.core.ui.ds.message.TangemMessageEffect import com.tangem.core.ui.extensions.clickableSingle import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.stringResourceSafe -import com.tangem.core.ui.res.LocalRedesignEnabled +import com.tangem.core.ui.res.LocalVisaRedesignEnabled import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview import com.tangem.features.tangempay.details.impl.R @@ -37,7 +37,7 @@ private const val GRADIENT_RADIUS = 200F @Composable internal fun TangemPayAddToWalletBlock(state: AddToWalletBlockState, modifier: Modifier = Modifier) { - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { TangemPayAddToWalletBlockV2(state = state, modifier = modifier) } else { TangemPayAddToWalletBlockV1(state = state, modifier = modifier) diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardDetailsBlock.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardDetailsBlock.kt index 1098f6470e..951778f3fb 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardDetailsBlock.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardDetailsBlock.kt @@ -195,7 +195,7 @@ private fun TangemPayCardDetailsHiddenBlock(state: TangemPayCardDetailsUM, modif bottom.linkTo(parent.bottom) } .testTag(TangemPayTestTags.CARD_DETAILS_SHOW_BUTTON), - visible = !LocalRedesignEnabled.current || state.isLoading, + visible = !LocalVisaRedesignEnabled.current || state.isLoading, ) { TangemPayCardDetailsCustomButton( text = stringResourceSafe(id = R.string.tangempay_card_details_show_details), @@ -215,7 +215,7 @@ private fun CardTopBlock(modifier: Modifier = Modifier) { verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(4.dp), ) { - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { Text( text = stringResourceSafe(R.string.tangempay_digital_card), style = TangemTheme.typography3.body.medium, @@ -248,7 +248,7 @@ private fun ConstraintLayoutScope.CardNumberBlock( cardNumberRef: ConstrainedLayoutReference, modifier: Modifier = Modifier, ) { - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { Text( text = numberShort, style = TangemTheme.typography3.body.medium, @@ -285,7 +285,7 @@ private fun CardDisplayName(state: DisplayNameState, modifier: Modifier = Modifi @Composable private fun DisplayOnlyCardDisplayName(state: DisplayNameState.Display, modifier: Modifier = Modifier) { - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { Row( modifier = modifier.conditional( condition = state.isEditingEnabled, @@ -337,7 +337,7 @@ private fun DisplayOnlyCardDisplayName(state: DisplayNameState.Display, modifier @Composable private fun EditingCardDisplayName(state: DisplayNameState.Editing, modifier: Modifier = Modifier) { - val isRedesignEnabled = LocalRedesignEnabled.current + val isRedesignEnabled = LocalVisaRedesignEnabled.current val focusRequester = remember { FocusRequester() } val placeholder = stringResourceSafe(R.string.tangempay_card_edit_name_placeholder) @@ -448,7 +448,7 @@ private fun TangemPayCardDetailsShownBlock( Spacer(modifier = Modifier.weight(1f)) Row { SpacerWMax() - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { // Must use dark theme locally for button cause card is dark CompositionLocalProvider(LocalIsInDarkTheme provides true) { TangemThemeRedesign { diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardPageScreen.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardPageScreen.kt index 6793c51dd5..044a3ea8c2 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardPageScreen.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayCardPageScreen.kt @@ -29,10 +29,7 @@ import com.tangem.core.ui.ds.topbar.TangemTopBar import com.tangem.core.ui.ds2.button.TangemButton import com.tangem.core.ui.extensions.resolveReference import com.tangem.core.ui.extensions.stringResourceSafe -import com.tangem.core.ui.res.LocalRedesignEnabled -import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TangemThemePreview -import com.tangem.core.ui.res.TangemThemePreviewRedesign +import com.tangem.core.ui.res.* import com.tangem.domain.models.pay.TangemPayCardFrozenState import com.tangem.features.tangempay.components.cardDetails.PreviewTangemPayCardDetailsBlockComponent import com.tangem.features.tangempay.components.cardDetails.TangemPayCardDetailsBlockComponent @@ -51,7 +48,7 @@ internal fun TangemPayCardPageScreen( cardDetailsState: TangemPayCardDetailsUM, modifier: Modifier = Modifier, ) { - val isRedesignEnabled = LocalRedesignEnabled.current + val isRedesignEnabled = LocalVisaRedesignEnabled.current Scaffold( modifier = modifier, topBar = { @@ -124,7 +121,7 @@ private fun TangemPayCardPageSettingsBlock( settings: ImmutableList, modifier: Modifier = Modifier, ) { - if (LocalRedesignEnabled.current) return + if (LocalVisaRedesignEnabled.current) return Column( modifier = modifier .fillMaxWidth() @@ -180,7 +177,7 @@ private fun CardPageTopBar( items: ImmutableList, modifier: Modifier = Modifier, ) { - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { var isDropdownMenuShown by rememberSaveable { mutableStateOf(false) } TangemTopBar( modifier = modifier.statusBarsPadding(), @@ -210,7 +207,7 @@ private fun CardPageTopBar( ) } else { AppBarWithBackButton( - modifier = modifier, + modifier = modifier.statusBarsPadding(), onBackClick = onBackClick, ) } @@ -282,7 +279,10 @@ private fun TangemPayCardPageScreenPreviewV1() { @Composable private fun TangemPayCardPageScreenPreviewV2() { TangemThemePreviewRedesign { - CompositionLocalProvider(LocalRedesignEnabled provides true) { + CompositionLocalProvider( + LocalRedesignEnabled provides true, + LocalVisaRedesignEnabled provides true, + ) { TangemPayCardPageScreen( state = TangemPayCardPageUM.stub(), cardDetailsBlockComponent = PreviewTangemPayCardDetailsBlockComponent( diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayDailyLimitBlock.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayDailyLimitBlock.kt index e81d92a24c..a9a05727a1 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayDailyLimitBlock.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/ui/TangemPayDailyLimitBlock.kt @@ -31,16 +31,13 @@ import com.tangem.core.ui.ds2.shimmers.TextShimmer import com.tangem.core.ui.ds2.shimmers.TextShimmerStyle import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.stringResourceSafe -import com.tangem.core.ui.res.LocalRedesignEnabled -import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TangemThemePreview -import com.tangem.core.ui.res.TangemThemePreviewRedesign +import com.tangem.core.ui.res.* import com.tangem.features.tangempay.details.impl.R import com.tangem.features.tangempay.entity.TangemPayDailyLimitBlockState @Composable internal fun TangemPayDailyLimitBlock(state: TangemPayDailyLimitBlockState, modifier: Modifier = Modifier) { - if (LocalRedesignEnabled.current) { + if (LocalVisaRedesignEnabled.current) { CurrentLimitBlockV2(state, modifier) } else { TangemPayDailyLimitBlockV1(state, modifier) @@ -268,7 +265,7 @@ private fun SubtitleLimit(state: TangemPayDailyLimitBlockState, modifier: Modifi @Composable internal fun TangemPayDailyLimitErrorBlock(modifier: Modifier = Modifier) { - if (LocalRedesignEnabled.current) return + if (LocalVisaRedesignEnabled.current) return Notification( config = NotificationConfig( title = resourceReference(R.string.tangempay_card_page_daily_limit_error_title), @@ -301,7 +298,10 @@ private fun Preview() { @Composable private fun PreviewV2() { TangemThemePreviewRedesign { - CompositionLocalProvider(LocalRedesignEnabled provides true) { + CompositionLocalProvider( + LocalRedesignEnabled provides true, + LocalVisaRedesignEnabled provides true, + ) { Column( verticalArrangement = Arrangement.spacedBy(16.dp), ) {