diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt index cc39867e7d..04a53a581c 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt @@ -1,8 +1,7 @@ package com.tangem.feature.swap.ui import androidx.activity.compose.BackHandler -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.foundation.layout.* import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -29,6 +28,7 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) { iconRes = R.drawable.ic_close_24, ) }, + contentWindowInsets = WindowInsets(left = 0, top = 0, right = 0, bottom = 0), containerColor = TangemTheme.colors.background.secondary, ) { scaffoldPaddings -> diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt index 43a6329ace..54a29db438 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt @@ -1,6 +1,6 @@ package com.tangem.feature.swap.ui -import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.* import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape @@ -45,58 +45,53 @@ internal fun SwapScreenContent(state: SwapStateHolder, modifier: Modifier = Modi .fillMaxSize() .background(color = TangemTheme.colors.background.secondary), ) { - Column { - Column( + Column( + modifier = Modifier + .fillMaxWidth() + .verticalScroll(rememberScrollState()) + .padding( + start = TangemTheme.dimens.spacing16, + end = TangemTheme.dimens.spacing16, + top = TangemTheme.dimens.spacing16, + bottom = TangemTheme.dimens.spacing32, + ), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing16), + ) { + MainInfo(state) + + ProviderItemBlock( + state = state.providerState, modifier = Modifier - .fillMaxWidth() - .verticalScroll(rememberScrollState()) - .padding( - start = TangemTheme.dimens.spacing16, - end = TangemTheme.dimens.spacing16, - top = TangemTheme.dimens.spacing16, - bottom = TangemTheme.dimens.spacing32, + .clickable( + enabled = state.providerState.onProviderClick != null, + onClick = { state.providerState.onProviderClick?.invoke(state.providerState.id) }, ), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing16), - ) { - MainInfo(state) + ) - ProviderItemBlock( - state = state.providerState, + FeeItemBlock(state = state.fee) + + if (state.warnings.isNotEmpty()) SwapWarnings(warnings = state.warnings) + + MainButton(state = state, onPermissionWarningClick = state.onShowPermissionBottomSheet) + + state.tosState?.let { + ProviderTos( + tosState = it, modifier = Modifier - .clickable( - enabled = state.providerState.onProviderClick != null, - onClick = { state.providerState.onProviderClick?.invoke(state.providerState.id) }, - ), + .padding(top = TangemTheme.dimens.spacing16), ) - - FeeItemBlock(state = state.fee) - - if (state.warnings.isNotEmpty()) SwapWarnings(warnings = state.warnings) - - MainButton(state = state, onPermissionWarningClick = state.onShowPermissionBottomSheet) - - state.tosState?.let { - ProviderTos( - tosState = it, - modifier = Modifier - .padding(top = TangemTheme.dimens.spacing16), - ) - } } } - AnimatedVisibility( - visible = keyboard is Keyboard.Opened, - modifier = Modifier - .imePadding() - .align(Alignment.BottomCenter), - ) { + if (keyboard is Keyboard.Opened) { Text( text = stringResource(id = R.string.send_max_amount_label), style = TangemTheme.typography.button, color = TangemTheme.colors.text.primary1, modifier = Modifier + .align(Alignment.BottomCenter) + .imePadding() .fillMaxWidth() .background(TangemTheme.colors.button.secondary) .clickable { state.onMaxAmountSelected?.invoke() } diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt index e7b51283c2..5b16375022 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt @@ -191,7 +191,9 @@ private fun Header(type: TransactionCardType, balance: String, modifier: Modifie color = TangemTheme.colors.text.tertiary, maxLines = 1, style = MaterialTheme.typography.subtitle2, - modifier = Modifier.defaultMinSize(minHeight = TangemTheme.dimens.size24), + modifier = Modifier + .defaultMinSize(minHeight = TangemTheme.dimens.size24) + .align(Alignment.CenterVertically), ) SpacerW16() if (balance.isNotBlank()) { @@ -201,8 +203,8 @@ private fun Header(type: TransactionCardType, balance: String, modifier: Modifie color = TangemTheme.colors.text.tertiary, style = MaterialTheme.typography.body2, modifier = Modifier - .defaultMinSize(minHeight = TangemTheme.dimens.size20) - .padding(top = TangemTheme.dimens.spacing2), + .defaultMinSize(minHeight = TangemTheme.dimens.size24) + .align(Alignment.CenterVertically), ) } } else {