diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt index f4478fc4fc..a203e348dd 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt @@ -4,9 +4,10 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalLifecycleOwner -import androidx.core.view.WindowCompat import androidx.fragment.app.Fragment import androidx.hilt.navigation.compose.hiltViewModel import androidx.transition.TransitionInflater @@ -25,8 +26,6 @@ import dagger.hilt.android.AndroidEntryPoint internal class AddCustomTokenFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, true) } - with(TransitionInflater.from(requireContext())) { enterTransition = inflateTransition(R.transition.fade) exitTransition = inflateTransition(R.transition.fade) @@ -41,7 +40,10 @@ internal class AddCustomTokenFragment : Fragment() { } TangemTheme { - AddCustomTokenScreen(stateHolder = viewModel.uiState) + AddCustomTokenScreen( + modifier = Modifier.systemBarsPadding(), + stateHolder = viewModel.uiState, + ) } } } diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenContent.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenContent.kt index e57d82cc15..55afd696af 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenContent.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenContent.kt @@ -8,11 +8,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.FabPosition import androidx.compose.material.Scaffold -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue +import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalDensity @@ -33,11 +29,12 @@ import com.tangem.tap.features.customtoken.impl.presentation.ui.components.AddCu [REDACTED_AUTHOR] */ @Composable -internal fun AddCustomTokenContent(state: AddCustomTokenStateHolder.Content) { +internal fun AddCustomTokenContent(state: AddCustomTokenStateHolder.Content, modifier: Modifier = Modifier) { BackHandler(onBack = state.onBackButtonClick) var floatingButtonHeight by remember { mutableStateOf(0.dp) } Scaffold( + modifier = modifier, topBar = { AddCustomTokenToolbar( title = state.toolbar.title, diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt index 71d079e899..eb099e7ee8 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt @@ -1,6 +1,7 @@ package com.tangem.tap.features.customtoken.impl.presentation.ui import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider @@ -15,10 +16,10 @@ import com.tangem.tap.features.customtoken.impl.presentation.states.AddCustomTok [REDACTED_AUTHOR] */ @Composable -internal fun AddCustomTokenScreen(stateHolder: AddCustomTokenStateHolder) { +internal fun AddCustomTokenScreen(stateHolder: AddCustomTokenStateHolder, modifier: Modifier = Modifier) { when (stateHolder) { - is AddCustomTokenStateHolder.Content -> AddCustomTokenContent(state = stateHolder) - is AddCustomTokenStateHolder.TestContent -> AddCustomTokenTestContent(state = stateHolder) + is AddCustomTokenStateHolder.Content -> AddCustomTokenContent(stateHolder, modifier) + is AddCustomTokenStateHolder.TestContent -> AddCustomTokenTestContent(stateHolder, modifier) } } diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenTestContent.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenTestContent.kt index c23fa86835..9304675ad7 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenTestContent.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenTestContent.kt @@ -1,31 +1,11 @@ package com.tangem.tap.features.customtoken.impl.presentation.ui import androidx.activity.compose.BackHandler -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.BottomSheetScaffold -import androidx.compose.material.BottomSheetScaffoldState -import androidx.compose.material.BottomSheetState -import androidx.compose.material.BottomSheetValue -import androidx.compose.material.Divider -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.FabPosition -import androidx.compose.material.Text -import androidx.compose.material.rememberBottomSheetScaffoldState -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.key -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue +import androidx.compose.material.* +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier @@ -59,7 +39,7 @@ import kotlinx.coroutines.launch */ @OptIn(ExperimentalMaterialApi::class) @Composable -internal fun AddCustomTokenTestContent(state: AddCustomTokenStateHolder.TestContent) { +internal fun AddCustomTokenTestContent(state: AddCustomTokenStateHolder.TestContent, modifier: Modifier = Modifier) { val coroutineScope = rememberCoroutineScope() val bottomSheetScaffoldState = rememberBottomSheetScaffoldState( bottomSheetState = BottomSheetState(initialValue = BottomSheetValue.Collapsed), @@ -77,6 +57,7 @@ internal fun AddCustomTokenTestContent(state: AddCustomTokenStateHolder.TestCont var floatingButtonHeight by remember { mutableStateOf(0.dp) } BottomSheetScaffold( + modifier = modifier, sheetContent = { SheetContent( coroutineScope = coroutineScope, diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt index a08b9af8b2..91a8e803b3 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt @@ -24,7 +24,7 @@ class QrScanFragment : Fragment(0), ZXingScannerView.ResultHandler { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, true) } + setFitSystemWindows(fit = true) activity?.onBackPressedDispatcher?.addCallback( this, object : OnBackPressedCallback(true) { @@ -47,6 +47,11 @@ class QrScanFragment : Fragment(0), ZXingScannerView.ResultHandler { scannerView?.stopCamera() } + override fun onDestroy() { + super.onDestroy() + setFitSystemWindows(fit = false) + } + override fun onResume() { super.onResume() scannerView?.setResultHandler(this) @@ -55,7 +60,7 @@ class QrScanFragment : Fragment(0), ZXingScannerView.ResultHandler { override fun handleResult(result: Result) { store.dispatch(NavigationAction.PopBackTo()) - activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, false) } + setFitSystemWindows(fit = false) if (!result.text.isNullOrBlank()) { store.dispatch(WalletConnectAction.OpenSession(result.text)) } @@ -83,4 +88,10 @@ class QrScanFragment : Fragment(0), ZXingScannerView.ResultHandler { private fun requestPermission() { requestPermissions(arrayOf(Manifest.permission.CAMERA), CameraView.PERMISSION_REQUEST_CODE) } + + private fun setFitSystemWindows(fit: Boolean) { + activity?.window?.let { + WindowCompat.setDecorFitsSystemWindows(it, fit) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt index e5ac57cfc8..8af509f84f 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt @@ -4,9 +4,10 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalLifecycleOwner -import androidx.core.view.WindowCompat import androidx.fragment.app.Fragment import androidx.hilt.navigation.compose.hiltViewModel import androidx.transition.TransitionInflater @@ -25,8 +26,6 @@ import dagger.hilt.android.AndroidEntryPoint internal class TokensListFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, true) } - with(TransitionInflater.from(requireContext())) { enterTransition = inflateTransition(R.transition.fade) exitTransition = inflateTransition(R.transition.fade) @@ -41,7 +40,10 @@ internal class TokensListFragment : Fragment() { } TangemTheme { - TokensListScreen(stateHolder = viewModel.uiState) + TokensListScreen( + modifier = Modifier.systemBarsPadding(), + stateHolder = viewModel.uiState, + ) } } } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt index d378d6ba75..44e620b8ac 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt @@ -56,12 +56,13 @@ import kotlinx.coroutines.flow.flowOf [REDACTED_AUTHOR] */ @Composable -internal fun TokensListScreen(stateHolder: TokensListStateHolder) { +internal fun TokensListScreen(stateHolder: TokensListStateHolder, modifier: Modifier = Modifier) { BackHandler(onBack = stateHolder.toolbarState.onBackButtonClick) var floatingButtonHeight by remember { mutableStateOf(value = 0.dp) } Scaffold( + modifier = modifier, topBar = { TokensListToolbar(state = stateHolder.toolbarState) }, floatingActionButton = { if (stateHolder is TokensListStateHolder.ManageContent) { diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ReferralFragment.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ReferralFragment.kt index 938566bd50..b04b901b66 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ReferralFragment.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ReferralFragment.kt @@ -4,11 +4,13 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView -import androidx.core.view.WindowCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.transition.TransitionInflater +import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.referral.presentation.R import com.tangem.feature.referral.router.ReferralRouter import com.tangem.feature.referral.ui.ReferralScreen @@ -28,13 +30,17 @@ class ReferralFragment : Fragment() { } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, true) } viewModel.setRouter(ReferralRouter(fragmentManager = WeakReference(parentFragmentManager))) viewModel.onScreenOpened() return ComposeView(inflater.context).apply { isTransitionGroup = true setContent { - ReferralScreen(stateHolder = viewModel.uiState) + TangemTheme { + ReferralScreen( + modifier = Modifier.systemBarsPadding(), + stateHolder = viewModel.uiState, + ) + } } } } diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt index 7f1ff6b6a8..7c3e8b2ddf 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt @@ -5,41 +5,11 @@ import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.LocalOverscrollConfiguration import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.BoxScope -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.BottomSheetScaffold -import androidx.compose.material.BottomSheetState -import androidx.compose.material.BottomSheetValue -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Icon -import androidx.compose.material.Snackbar -import androidx.compose.material.SnackbarDuration -import androidx.compose.material.SnackbarHost -import androidx.compose.material.SnackbarHostState -import androidx.compose.material.SnackbarResult -import androidx.compose.material.Text -import androidx.compose.material.rememberBottomSheetScaffoldState -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.SideEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue +import androidx.compose.material.* +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -63,9 +33,7 @@ import com.tangem.core.ui.res.TangemColorPalette import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.referral.models.DemoModeException import com.tangem.feature.referral.models.ReferralStateHolder -import com.tangem.feature.referral.models.ReferralStateHolder.ErrorSnackbar -import com.tangem.feature.referral.models.ReferralStateHolder.ReferralInfoContentState -import com.tangem.feature.referral.models.ReferralStateHolder.ReferralInfoState +import com.tangem.feature.referral.models.ReferralStateHolder.* import com.tangem.feature.referral.presentation.R import com.valentinilk.shimmer.shimmer import kotlinx.coroutines.launch @@ -77,47 +45,46 @@ import kotlinx.coroutines.launch */ @OptIn(ExperimentalMaterialApi::class) @Composable -internal fun ReferralScreen(stateHolder: ReferralStateHolder) { +internal fun ReferralScreen(stateHolder: ReferralStateHolder, modifier: Modifier = Modifier) { val coroutineScope = rememberCoroutineScope() val bottomSheetScaffoldState = rememberBottomSheetScaffoldState( bottomSheetState = BottomSheetState(BottomSheetValue.Collapsed), ) - TangemTheme { - BottomSheetScaffold( - sheetContent = { - AgreementBottomSheetContent( - url = when (val state = stateHolder.referralInfoState) { - is ReferralInfoState.NonParticipantContent -> state.url - is ReferralInfoState.ParticipantContent -> state.url - is ReferralInfoState.Loading -> "" - }, - ) - }, - scaffoldState = bottomSheetScaffoldState, - sheetShape = RoundedCornerShape( - topStart = TangemTheme.dimens.radius16, - topEnd = TangemTheme.dimens.radius16, - ), - sheetElevation = TangemTheme.dimens.elevation24, - sheetPeekHeight = TangemTheme.dimens.size0, - content = { - ReferralContent( - stateHolder = stateHolder, - onAgreementClick = { - stateHolder.analytics.onAgreementClicked.invoke() - coroutineScope.launch { - if (bottomSheetScaffoldState.bottomSheetState.isCollapsed) { - bottomSheetScaffoldState.bottomSheetState.expand() - } else { - bottomSheetScaffoldState.bottomSheetState.collapse() - } + BottomSheetScaffold( + modifier = modifier, + sheetContent = { + AgreementBottomSheetContent( + url = when (val state = stateHolder.referralInfoState) { + is ReferralInfoState.NonParticipantContent -> state.url + is ReferralInfoState.ParticipantContent -> state.url + is ReferralInfoState.Loading -> "" + }, + ) + }, + scaffoldState = bottomSheetScaffoldState, + sheetShape = RoundedCornerShape( + topStart = TangemTheme.dimens.radius16, + topEnd = TangemTheme.dimens.radius16, + ), + sheetElevation = TangemTheme.dimens.elevation24, + sheetPeekHeight = TangemTheme.dimens.size0, + content = { + ReferralContent( + stateHolder = stateHolder, + onAgreementClick = { + stateHolder.analytics.onAgreementClicked.invoke() + coroutineScope.launch { + if (bottomSheetScaffoldState.bottomSheetState.isCollapsed) { + bottomSheetScaffoldState.bottomSheetState.expand() + } else { + bottomSheetScaffoldState.bottomSheetState.collapse() } - }, - ) - }, - ) - } + } + }, + ) + }, + ) } @OptIn(ExperimentalFoundationApi::class) @@ -487,7 +454,7 @@ private fun Preview_ReferralScreen_Participant_InLightTheme() { TangemTheme(isDark = false) { ReferralScreen( stateHolder = ReferralStateHolder( - headerState = ReferralStateHolder.HeaderState(onBackClicked = {}), + headerState = HeaderState(onBackClicked = {}), referralInfoState = ReferralInfoState.ParticipantContent( award = "10 USDT", networkName = "Tron", @@ -499,7 +466,7 @@ private fun Preview_ReferralScreen_Participant_InLightTheme() { url = "", ), errorSnackbar = null, - analytics = ReferralStateHolder.Analytics( + analytics = Analytics( onAgreementClicked = {}, onCopyClicked = {}, onShareClicked = {}, @@ -515,7 +482,7 @@ private fun Preview_ReferralScreen_Participant_InDarkTheme() { TangemTheme(isDark = true) { ReferralScreen( stateHolder = ReferralStateHolder( - headerState = ReferralStateHolder.HeaderState(onBackClicked = {}), + headerState = HeaderState(onBackClicked = {}), referralInfoState = ReferralInfoState.ParticipantContent( award = "10 USDT", networkName = "Tron", @@ -527,7 +494,7 @@ private fun Preview_ReferralScreen_Participant_InDarkTheme() { url = "", ), errorSnackbar = null, - analytics = ReferralStateHolder.Analytics( + analytics = Analytics( onAgreementClicked = {}, onCopyClicked = {}, onShareClicked = {}, @@ -543,7 +510,7 @@ private fun Preview_ReferralScreen_NonParticipant_InLightTheme() { TangemTheme(isDark = false) { ReferralScreen( stateHolder = ReferralStateHolder( - headerState = ReferralStateHolder.HeaderState(onBackClicked = {}), + headerState = HeaderState(onBackClicked = {}), referralInfoState = ReferralInfoState.NonParticipantContent( award = "10 USDT", networkName = "Tron", @@ -552,7 +519,7 @@ private fun Preview_ReferralScreen_NonParticipant_InLightTheme() { onParticipateClicked = {}, ), errorSnackbar = null, - analytics = ReferralStateHolder.Analytics( + analytics = Analytics( onAgreementClicked = {}, onCopyClicked = {}, onShareClicked = {}, @@ -568,7 +535,7 @@ private fun Preview_ReferralScreen_NonParticipant_InDarkTheme() { TangemTheme(isDark = true) { ReferralScreen( stateHolder = ReferralStateHolder( - headerState = ReferralStateHolder.HeaderState(onBackClicked = {}), + headerState = HeaderState(onBackClicked = {}), referralInfoState = ReferralInfoState.NonParticipantContent( award = "10 USDT", networkName = "Tron", @@ -577,7 +544,7 @@ private fun Preview_ReferralScreen_NonParticipant_InDarkTheme() { onParticipateClicked = {}, ), errorSnackbar = null, - analytics = ReferralStateHolder.Analytics( + analytics = Analytics( onAgreementClicked = {}, onCopyClicked = {}, onShareClicked = {}, @@ -593,10 +560,10 @@ private fun Preview_ReferralScreen_Loading_InLightTheme() { TangemTheme(isDark = false) { ReferralScreen( stateHolder = ReferralStateHolder( - headerState = ReferralStateHolder.HeaderState(onBackClicked = {}), + headerState = HeaderState(onBackClicked = {}), referralInfoState = ReferralInfoState.Loading, errorSnackbar = null, - analytics = ReferralStateHolder.Analytics( + analytics = Analytics( onAgreementClicked = {}, onCopyClicked = {}, onShareClicked = {}, @@ -612,10 +579,10 @@ private fun Preview_ReferralScreen_Loading_InDarkTheme() { TangemTheme(isDark = true) { ReferralScreen( stateHolder = ReferralStateHolder( - headerState = ReferralStateHolder.HeaderState(onBackClicked = {}), + headerState = HeaderState(onBackClicked = {}), referralInfoState = ReferralInfoState.Loading, errorSnackbar = null, - analytics = ReferralStateHolder.Analytics( + analytics = Analytics( onAgreementClicked = {}, onCopyClicked = {}, onShareClicked = {}, diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/WalletFragment.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/WalletFragment.kt index 1bc2cd04fd..04e93bf88f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/WalletFragment.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/WalletFragment.kt @@ -6,7 +6,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.compose.ui.platform.ComposeView -import androidx.core.view.WindowCompat import androidx.fragment.app.Fragment import com.tangem.feature.wallet.impl.R import com.tangem.feature.wallet.presentation.router.InnerWalletRouter @@ -32,8 +31,6 @@ internal class WalletFragment : Fragment() { } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, true) } - with(TransitionInflater.from(requireContext())) { enterTransition = inflateTransition(R.transition.slide_right) exitTransition = inflateTransition(R.transition.fade) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt index e626eb0029..f4b5bb65d0 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt @@ -13,8 +13,9 @@ import com.tangem.feature.wallet.presentation.common.WalletPreviewData import com.tangem.feature.wallet.presentation.common.state.TokenListState @Composable -internal fun OrganizeTokensScreen(state: OrganizeTokensStateHolder) { +internal fun OrganizeTokensScreen(state: OrganizeTokensStateHolder, modifier: Modifier = Modifier) { Scaffold( + modifier = modifier, topBar = { TopBar(state.header) }, diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt index f2768ed116..b963f8f7b7 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt @@ -1,7 +1,9 @@ package com.tangem.feature.wallet.presentation.router import androidx.activity.compose.BackHandler +import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import androidx.fragment.app.Fragment import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavHostController @@ -32,7 +34,10 @@ internal class DefaultWalletRouter : InnerWalletRouter { ) { composable(WalletScreens.WALLET.name) { val viewModel = hiltViewModel().apply { router = this@DefaultWalletRouter } - WalletScreen(state = viewModel.uiState) + WalletScreen( + modifier = Modifier.systemBarsPadding(), + state = viewModel.uiState, + ) } composable(WalletScreens.ORGANIZE_TOKENS.name) { @@ -41,7 +46,10 @@ internal class DefaultWalletRouter : InnerWalletRouter { val viewModel: OrganizeTokensViewModel = hiltViewModel() .apply { router = this@DefaultWalletRouter } - OrganizeTokensScreen(state = viewModel.uiState) + OrganizeTokensScreen( + modifier = Modifier.systemBarsPadding(), + state = viewModel.uiState, + ) } } } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt index ba17e6e692..098d1e1e45 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt @@ -3,6 +3,7 @@ package com.tangem.feature.wallet.presentation.wallet.ui import androidx.activity.compose.BackHandler import androidx.compose.material.Scaffold import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import com.tangem.feature.wallet.presentation.wallet.state.WalletStateHolder import com.tangem.feature.wallet.presentation.wallet.ui.components.WalletHeader @@ -14,10 +15,11 @@ import com.tangem.feature.wallet.presentation.wallet.ui.components.WalletHeader [REDACTED_AUTHOR] */ @Composable -internal fun WalletScreen(state: WalletStateHolder) { +internal fun WalletScreen(state: WalletStateHolder, modifier: Modifier = Modifier) { BackHandler(onBack = state.onBackClick) Scaffold( + modifier = modifier, topBar = { WalletHeader(config = state.headerConfig) }, ) { // TODO: [REDACTED_TASK_KEY] Design a body with tokens and transactions