From de5bb054faffbfa79494e4b15d889daf9721e799 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 11 Dec 2023 17:51:03 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/core/ui/components/Keyboard.kt | 25 +++---------------- .../com/tangem/feature/swap/ui/SwapScreen.kt | 12 +++++++++ .../feature/swap/ui/SwapScreenContent.kt | 7 ------ .../feature/swap/ui/SwapSelectTokenScreen.kt | 3 ++- 4 files changed, 18 insertions(+), 29 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt index 4baf118b61..a920fda100 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt @@ -1,13 +1,10 @@ package com.tangem.core.ui.components import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.exclude import androidx.compose.foundation.layout.ime -import androidx.compose.foundation.layout.navigationBars import androidx.compose.runtime.Composable import androidx.compose.runtime.State -import androidx.compose.runtime.derivedStateOf -import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -25,23 +22,9 @@ sealed interface Keyboard { /** * Allows to subscribe to a soft keyboard to detect when it's open/closed */ -@Deprecated("Use Modifier.imePadding() on pure Compose screens (without XML layouts)") @Composable fun keyboardAsState(): State { - val density = LocalDensity.current - val imeInsets = WindowInsets.ime - .exclude(WindowInsets.navigationBars) - .getBottom(density) - - return remember(imeInsets) { - derivedStateOf { - if (imeInsets > 0) { - Keyboard.Opened( - height = with(density) { imeInsets.toDp() }, - ) - } else { - Keyboard.Closed - } - } - } + val bottom = WindowInsets.ime.getBottom(LocalDensity.current) + val isImeVisible = bottom > 0 + return rememberUpdatedState(if (isImeVisible) Keyboard.Opened(bottom.dp) else Keyboard.Closed) } \ No newline at end of file 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 a70b6ce6f2..c25ea64c0b 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 @@ -2,21 +2,33 @@ 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.material.* import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import com.tangem.core.ui.components.appbar.AppBarWithBackButton import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.swap.models.SwapStateHolder import com.tangem.feature.swap.models.states.ChooseFeeBottomSheetConfig import com.tangem.feature.swap.models.states.ChooseProviderBottomSheetConfig import com.tangem.feature.swap.models.states.GivePermissionBottomSheetConfig +import com.tangem.feature.swap.presentation.R @Composable internal fun SwapScreen(stateHolder: SwapStateHolder) { BackHandler(onBack = stateHolder.onBackClicked) Scaffold( + modifier = Modifier.systemBarsPadding(), + topBar = { + AppBarWithBackButton( + text = stringResource(R.string.common_swap), + onBackClick = stateHolder.onBackClicked, + iconRes = R.drawable.ic_close_24, + ) + }, 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 949ead0f64..ace1d19a31 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 @@ -17,7 +17,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.constraintlayout.compose.ConstraintLayout import com.tangem.common.Strings.STARS import com.tangem.core.ui.components.* -import com.tangem.core.ui.components.appbar.AppBarWithBackButton import com.tangem.core.ui.components.notifications.Notification import com.tangem.core.ui.components.notifications.NotificationConfig import com.tangem.core.ui.extensions.getActiveIconResByCoinId @@ -40,12 +39,6 @@ internal fun SwapScreenContent(state: SwapStateHolder, modifier: Modifier = Modi .background(color = TangemTheme.colors.background.secondary), ) { Column { - AppBarWithBackButton( - text = stringResource(R.string.common_swap), - onBackClick = state.onBackClicked, - iconRes = R.drawable.ic_close_24, - ) - Column( modifier = Modifier .fillMaxWidth() diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt index 82b05a7c86..4057aba9af 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt @@ -97,7 +97,8 @@ private fun ListOfTokens(state: SwapSelectTokenStateHolder, modifier: Modifier = LazyColumn( modifier = modifier .background(color = screenBackgroundColor) - .fillMaxSize(), + .fillMaxSize() + .imePadding(), horizontalAlignment = Alignment.CenterHorizontally, ) { item { SpacerH8() }