diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownItem.kt b/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownItem.kt index dff51e77e2..1536d84244 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownItem.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownItem.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.R import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resolveReference +import com.tangem.core.ui.extensions.themedColor import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview import com.tangem.core.ui.test.PopUpMenuTestTags @@ -28,7 +29,7 @@ fun TangemDropdownItem(item: TangemDropdownMenuItem, dismissParent: () -> Unit, .padding(vertical = TangemTheme.dimens.spacing8, horizontal = TangemTheme.dimens.spacing16) .testTag(PopUpMenuTestTags.BUTTON), text = item.title.resolveReference(), - style = TangemTheme.typography.button.copy(color = item.textColorProvider()), + style = TangemTheme.typography.button.copy(color = item.textColor.resolveReference()), ) } @@ -42,7 +43,7 @@ private fun Preview_TokenDetailsAppBarDropdownItem() { dismissParent = {}, item = TangemDropdownMenuItem( title = TextReference.Res(id = R.string.token_details_hide_token), - textColorProvider = { TangemTheme.colors.text.warning }, + textColor = themedColor { TangemTheme.colors.text.warning }, onClick = { }, ), ) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownMenuItem.kt b/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownMenuItem.kt index 7d239636dd..189b35eb0e 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownMenuItem.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/dropdownmenu/TangemDropdownMenuItem.kt @@ -1,11 +1,10 @@ package com.tangem.core.ui.components.dropdownmenu -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color +import com.tangem.core.ui.extensions.ColorReference import com.tangem.core.ui.extensions.TextReference data class TangemDropdownMenuItem( val title: TextReference, - val textColorProvider: @Composable () -> Color, + val textColor: ColorReference, val onClick: () -> Unit, ) \ No newline at end of file diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt index 8c916070f1..0d3fa873de 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt @@ -28,8 +28,7 @@ internal class TangemPayTxHistoryItemConverter(moshi: Moshi) : return TangemPayTxHistoryItem.Spend( id = id, jsonRepresentation = spendAdapter.toJson(spend), - // If postedAt is null, it means transaction wasn't posted and was likely declined. Use authorizedAt - date = spend.postedAt ?: spend.authorizedAt, + date = spend.authorizedAt, amount = spend.amount, currency = Currency.getInstance(spend.currency), enrichedMerchantName = spend.enrichedMerchantName, diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/entity/TangemPayDetailsStateFactory.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/entity/TangemPayDetailsStateFactory.kt index 9b4f5976c4..baae7769b7 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/entity/TangemPayDetailsStateFactory.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/entity/TangemPayDetailsStateFactory.kt @@ -6,6 +6,7 @@ import com.tangem.core.ui.components.containers.pullToRefresh.PullToRefreshConfi import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.extensions.themedColor import com.tangem.core.ui.res.TangemTheme import com.tangem.features.tangempay.details.impl.R import kotlinx.collections.immutable.persistentListOf @@ -24,12 +25,12 @@ internal class TangemPayDetailsStateFactory( items = persistentListOf( TangemDropdownMenuItem( title = TextReference.Res(R.string.tangempay_card_details_change_pin), - textColorProvider = { TangemTheme.colors.text.primary1 }, + textColor = themedColor { TangemTheme.colors.text.primary1 }, onClick = onClickChangePin, ), TangemDropdownMenuItem( title = TextReference.Res(R.string.tangempay_card_details_freeze_card), - textColorProvider = { TangemTheme.colors.text.primary1 }, + textColor = themedColor { TangemTheme.colors.text.primary1 }, onClick = onClickFreezeCard, ), ), diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt index efd45df7b3..1c45dc31c5 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt @@ -11,6 +11,7 @@ import com.tangem.features.tangempay.utils.TangemPayTxHistoryUiActions import com.tangem.utils.StringsSigns import com.tangem.utils.converter.Converter import com.tangem.utils.extensions.isPositive +import com.tangem.utils.extensions.isZero import org.joda.time.DateTimeZone internal class TangemPayTxHistoryItemsConverter( @@ -51,7 +52,11 @@ internal class TangemPayTxHistoryItemsConverter( } private fun convertPayment(payment: TangemPayTxHistoryItem.Payment): TangemPayTransactionState.Content.Payment { - val amountPrefix = if (payment.amount.isPositive()) StringsSigns.PLUS else StringsSigns.MINUS + val amountPrefix = when { + payment.amount.isZero() -> "" + payment.amount.isPositive() -> StringsSigns.PLUS + else -> StringsSigns.MINUS + } val amount = amountPrefix + payment.amount.format { fiat(fiatCurrencyCode = payment.currency.currencyCode, fiatCurrencySymbol = payment.currency.symbol) } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt index 66afedfdbf..f73ef83188 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/TokenDetailsPreviewData.kt @@ -6,10 +6,7 @@ import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem import com.tangem.core.ui.components.marketprice.MarketPriceBlockState import com.tangem.core.ui.components.marketprice.PriceChangeState import com.tangem.core.ui.components.marketprice.PriceChangeType -import com.tangem.core.ui.extensions.TextReference -import com.tangem.core.ui.extensions.resourceReference -import com.tangem.core.ui.extensions.stringReference -import com.tangem.core.ui.extensions.wrappedList +import com.tangem.core.ui.extensions.* import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.tokendetails.presentation.tokendetails.state.* import com.tangem.feature.tokendetails.presentation.tokendetails.state.components.TokenDetailsActionButton @@ -26,7 +23,7 @@ internal object TokenDetailsPreviewData { persistentListOf( TangemDropdownMenuItem( title = TextReference.Res(id = R.string.token_details_hide_token), - textColorProvider = { TangemTheme.colors.text.warning }, + textColor = themedColor { TangemTheme.colors.text.warning }, onClick = { }, ), ), diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSkeletonStateConverter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSkeletonStateConverter.kt index faca9bd311..4bf97d2e4d 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSkeletonStateConverter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSkeletonStateConverter.kt @@ -7,6 +7,7 @@ import com.tangem.core.ui.components.marketprice.MarketPriceBlockState import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.networkIconResId import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.extensions.themedColor import com.tangem.core.ui.res.TangemTheme import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.network.Network @@ -83,7 +84,7 @@ internal class TokenDetailsSkeletonStateConverter( addGenerateXPubMenuItem(cryptoCurrency) TangemDropdownMenuItem( title = TextReference.Res(id = R.string.token_details_hide_token), - textColorProvider = { TangemTheme.colors.text.warning }, + textColor = themedColor { TangemTheme.colors.text.warning }, onClick = clickIntents::onHideClick, ).let(::add) }.toImmutableList(), @@ -102,7 +103,7 @@ internal class TokenDetailsSkeletonStateConverter( add( TangemDropdownMenuItem( title = resourceReference(R.string.token_details_generate_xpub), - textColorProvider = { TangemTheme.colors.text.primary1 }, + textColor = themedColor { TangemTheme.colors.text.primary1 }, onClick = clickIntents::onGenerateExtendedKey, ), ) diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsStateFactory.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsStateFactory.kt index af30b75a43..bc15be0a35 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsStateFactory.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsStateFactory.kt @@ -8,6 +8,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.extensions.themedColor import com.tangem.core.ui.res.TangemTheme import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.card.common.util.cardTypesResolver @@ -345,13 +346,13 @@ internal class TokenDetailsStateFactory( if (isSupported && hasDerivations) { TangemDropdownMenuItem( title = resourceReference(R.string.token_details_generate_xpub), - textColorProvider = { TangemTheme.colors.text.primary1 }, + textColor = themedColor { TangemTheme.colors.text.primary1 }, onClick = clickIntents::onGenerateExtendedKey, ).let(::add) } TangemDropdownMenuItem( title = TextReference.Res(id = R.string.token_details_hide_token), - textColorProvider = { TangemTheme.colors.text.warning }, + textColor = themedColor { TangemTheme.colors.text.warning }, onClick = clickIntents::onHideClick, ).let(::add) }.toImmutableList(), diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcConnectionsModel.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcConnectionsModel.kt index 578b261be3..809f8192aa 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcConnectionsModel.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcConnectionsModel.kt @@ -13,6 +13,7 @@ import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.ui.components.appbar.models.TopAppBarButtonUM import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.extensions.themedColor import com.tangem.core.ui.message.DialogMessage import com.tangem.core.ui.message.EventMessageAction import com.tangem.core.ui.message.SnackbarMessage @@ -139,7 +140,7 @@ internal class WcConnectionsModel @Inject constructor( ), disconnectAllItem = TangemDropdownMenuItem( title = resourceReference(R.string.wc_disconnect_all), - textColorProvider = { TangemTheme.colors.text.warning }, + textColor = themedColor { TangemTheme.colors.text.warning }, onClick = ::showDisconnectAllDialog, ), ), diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/ui/preview/WcConnectionsPreviewData.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/ui/preview/WcConnectionsPreviewData.kt index a527826b41..8a73a65d2f 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/ui/preview/WcConnectionsPreviewData.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/ui/preview/WcConnectionsPreviewData.kt @@ -3,12 +3,9 @@ package com.tangem.features.walletconnect.connections.ui.preview import com.tangem.core.ui.components.appbar.models.TopAppBarButtonUM import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.extensions.themedColor import com.tangem.core.ui.res.TangemTheme -import com.tangem.features.walletconnect.connections.entity.VerifiedDAppState -import com.tangem.features.walletconnect.connections.entity.WcConnectedAppInfo -import com.tangem.features.walletconnect.connections.entity.WcConnectionsState -import com.tangem.features.walletconnect.connections.entity.WcConnectionsTopAppBarConfig -import com.tangem.features.walletconnect.connections.entity.WcConnectionsUM +import com.tangem.features.walletconnect.connections.entity.* import com.tangem.features.walletconnect.impl.R import kotlinx.collections.immutable.persistentListOf import timber.log.Timber @@ -124,7 +121,7 @@ internal object WcConnectionsPreviewData { ), disconnectAllItem = TangemDropdownMenuItem( title = resourceReference(R.string.wc_disconnect_all), - textColorProvider = { TangemTheme.colors.text.warning }, + textColor = themedColor { TangemTheme.colors.text.warning }, onClick = { }, ), ),