From 6f21916cb2fba97b2abb900a79364f9d4c7d876d Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 20 Feb 2025 17:05:46 +0300 Subject: [PATCH 1/2] Updated on 2026-08-14 --- .../data/onramp/DefaultHotCryptoRepository.kt | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultHotCryptoRepository.kt b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultHotCryptoRepository.kt index 37f078c19b..1844c1e6c5 100644 --- a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultHotCryptoRepository.kt +++ b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultHotCryptoRepository.kt @@ -2,6 +2,8 @@ package com.tangem.data.onramp import com.tangem.blockchain.common.Blockchain import com.tangem.blockchainsdk.utils.ExcludedBlockchains +import com.tangem.blockchainsdk.utils.NEW_POLYGON_NAME +import com.tangem.blockchainsdk.utils.OLD_POLYGON_NAME import com.tangem.blockchainsdk.utils.fromNetworkId import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.models.event.MainScreenAnalyticsEvent @@ -141,9 +143,11 @@ internal class DefaultHotCryptoRepository( val (userWallet, tokens) = walletWithTokens return copy( - tokens = this.tokens.filter { hotToken -> - !tokens.hasAlreadyAdded(hotToken) && userWallet.canHandleHotCrypto(hotToken) - }, + tokens = this.tokens + .filter { hotToken -> + !tokens.hasAlreadyAdded(hotToken) && userWallet.canHandleHotCrypto(hotToken) + } + .applyTokensIdMigrations(), ) } @@ -154,6 +158,16 @@ internal class DefaultHotCryptoRepository( } } + private fun List.applyTokensIdMigrations(): List { + return this.map { + if (it.id == OLD_POLYGON_NAME) { + it.copy(id = NEW_POLYGON_NAME) + } else { + it + } + } + } + // TODO: [REDACTED_JIRA] private fun UserWallet.canHandleHotCrypto(hotToken: HotCryptoResponse.Token): Boolean { val isToken = hotToken.contractAddress != null && hotToken.decimalCount != null From 70a269a5b5342ea5c311d837c72fde007f4b3ef1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 20 Feb 2025 19:21:53 +0300 Subject: [PATCH 2/2] Updated on 2026-08-14 --- .../com/tangem/core/ui/components/Flicker.kt | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Flicker.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Flicker.kt index 9aaf9c0362..357e123c64 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Flicker.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Flicker.kt @@ -1,7 +1,9 @@ package com.tangem.core.ui.components import android.content.res.Configuration -import androidx.compose.animation.core.* +import androidx.compose.animation.core.CubicBezierEasing +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box @@ -10,7 +12,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.composed -import androidx.compose.ui.draw.alpha +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview @@ -27,26 +29,28 @@ fun Modifier.flicker( targetTextAlpha: Float = 0.4f, animationDurationMillis: Int = 1200, ): Modifier = composed { - val infiniteTransition = rememberInfiniteTransition() - val defaultAlpha = remember { mutableFloatStateOf(value = 1f) } + var alphaChange by remember { mutableStateOf(false) } - val alpha: Float by if (isFlickering) { - infiniteTransition.animateFloat( - initialValue = 1f, - targetValue = targetTextAlpha, - animationSpec = infiniteRepeatable( - animation = tween( - durationMillis = animationDurationMillis, - easing = CubicBezierEasing(a = 0.45f, b = 0.0f, c = 0.55f, d = 1.0f), - ), - repeatMode = RepeatMode.Reverse, - ), - ) - } else { - defaultAlpha + val alpha: Float by animateFloatAsState( + targetValue = if (alphaChange) targetTextAlpha else 1f, + animationSpec = tween( + durationMillis = animationDurationMillis, + easing = CubicBezierEasing(a = 0.45f, b = 0.0f, c = 0.55f, d = 1.0f), + ), + finishedListener = { + alphaChange = it == 1f && isFlickering + }, + ) + + LaunchedEffect(isFlickering) { + if (isFlickering) { + alphaChange = true + } } - this.then(alpha(alpha)) + this.graphicsLayer { + this.alpha = alpha + } } // region Preview