diff --git a/features/for-you/impl/build.gradle.kts b/features/for-you/impl/build.gradle.kts index 05657670cc..d2009892cf 100644 --- a/features/for-you/impl/build.gradle.kts +++ b/features/for-you/impl/build.gradle.kts @@ -8,6 +8,12 @@ plugins { android { namespace = "com.tangem.features.foryou.impl" + + packaging { + resources { + merges += "paymentrequest.proto" + } + } } dependencies { diff --git a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/DonutChart.kt b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/DonutChart.kt index 9129c054a8..3ab9e0a3d1 100644 --- a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/DonutChart.kt +++ b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/DonutChart.kt @@ -111,7 +111,6 @@ internal fun DonutChart( Modifier.pointerInput(segments, startAngle, strokePx) { detectTapGestures { tap -> val clickedIndex = segmentIndexAt(tap, size.toSize(), strokePx, segments, startAngle) - if (latestSelectedIndex != clickedIndex) latestOnSegmentClick?.invoke(clickedIndex) } } diff --git a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/MarketChart.kt b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/MarketChart.kt index b326db6fae..051835a162 100644 --- a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/MarketChart.kt +++ b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/components/MarketChart.kt @@ -194,12 +194,15 @@ private fun DonutSegmentTooltipBlock( onDismissRequest: () -> Unit, ) { val density = LocalDensity.current - val gapPx = with(density) { TooltipGap.roundToPx() } + val gapPx = with(density) { 8.dp.roundToPx() } val strokePx = with(density) { DonutStrokeWidth.toPx() } + var shownIndex by remember { mutableStateOf(null) } + if (selectedIndex != null) shownIndex = selectedIndex - val selectedSegment = selectedIndex?.let(segments::getOrNull) + val isExpanded = selectedIndex?.let(segments::getOrNull) != null + val shownSegment = shownIndex?.let(segments::getOrNull) val positionProvider = remember( - selectedIndex, + shownIndex, segments, chartSize, chartWindowOffset, @@ -208,7 +211,7 @@ private fun DonutSegmentTooltipBlock( gapPx, ) { segmentTooltipPositionProvider( - selectedIndex = selectedIndex, + selectedIndex = shownIndex, segments = segments, chartSize = chartSize, chartWindowOffset = chartWindowOffset, @@ -220,11 +223,11 @@ private fun DonutSegmentTooltipBlock( } DonutSegmentTooltip( - expanded = selectedSegment != null, + expanded = isExpanded, positionProvider = positionProvider, - title = selectedSegment?.title.orEmpty(), - fiatValue = selectedSegment?.fiatValue.orEmpty(), - percent = selectedSegment?.let { formatSegmentPercent(it.weight) }.orEmpty(), + title = shownSegment?.title.orEmpty(), + fiatValue = shownSegment?.fiatValue.orEmpty(), + percent = shownSegment?.let { formatSegmentPercent(it.weight) }.orEmpty(), onDismissRequest = onDismissRequest, ) } @@ -236,8 +239,7 @@ private fun formatSegmentPercent(weight: Float): String { } private val DonutStrokeWidth = 28.dp -private const val DonutStartAngle = -90f -private val TooltipGap = 8.dp +private val DonutStartAngle = -90f @Composable private fun ColumnScope.TopHoldingBlock(assetCount: Int, topHoldingPercent: Float) {