From f92aca5c9c9e18df68367232e4d4cbf87d559fe8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 8 Aug 2022 10:56:26 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../details/ui/details/DetailsScreen.kt | 65 ++++++++++++------- .../details/ui/details/DetailsScreenState.kt | 2 + .../details/ui/details/DetailsViewModel.kt | 7 +- app/src/main/res/drawable/ic_currency.xml | 10 +++ 4 files changed, 60 insertions(+), 24 deletions(-) create mode 100644 app/src/main/res/drawable/ic_currency.xml diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt index f6e353e074..8d256d2c8b 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt @@ -5,10 +5,12 @@ import androidx.compose.foundation.layout.Arrangement 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.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.material.Icon @@ -31,7 +33,6 @@ fun DetailsScreen( onBackPressed: () -> Unit, modifier: Modifier = Modifier, ) { - SettingsScreensScaffold( content = { Content(state = state, modifier = modifier) @@ -48,23 +49,31 @@ fun Content( ) { Column( modifier = modifier - .fillMaxWidth() + .fillMaxSize() .padding(bottom = 40.dp), ) { - - state.elements.map { - if (it == SettingsElement.WalletConnect) { - WalletConnectDetailsItem( - onItemsClick = state.onItemsClick, modifier = modifier, - ) - } else { - DetailsItem( - item = it, onItemsClick = state.onItemsClick, - modifier = modifier, - ) + LazyColumn( + modifier = modifier + .fillMaxWidth() + .padding(bottom = 40.dp) + .weight(1f), + ) { + items(state.elements) { + if (it == SettingsElement.WalletConnect) { + WalletConnectDetailsItem( + onItemsClick = state.onItemsClick, + modifier = modifier, + ) + } else { + DetailsItem( + item = it, + appCurrency = state.appCurrency, + onItemsClick = state.onItemsClick, + modifier = modifier, + ) + } } } - Spacer(modifier = Modifier.weight(1f)) TangemSocialAccounts(state.tangemLinks, state.onSocialNetworkClick) Spacer(modifier = Modifier.size(12.dp)) Text( @@ -88,8 +97,7 @@ fun WalletConnectDetailsItem( .clickable { onItemsClick(SettingsElement.WalletConnect) }, horizontalArrangement = Arrangement.Start, verticalAlignment = Alignment.CenterVertically, - - ) { + ) { Icon( painter = painterResource(id = R.drawable.ic_walletconnect), contentDescription = stringResource(id = R.string.wallet_connect_title), @@ -114,13 +122,13 @@ fun WalletConnectDetailsItem( color = colorResource(id = R.color.text_secondary), ) } - } } @Composable fun DetailsItem( item: SettingsElement, + appCurrency: String, onItemsClick: (SettingsElement) -> Unit, modifier: Modifier = Modifier, ) { @@ -138,12 +146,22 @@ fun DetailsItem( modifier = modifier.padding(start = 20.dp, end = 20.dp), tint = colorResource(id = R.color.icon_secondary), ) - Text( - text = stringResource(id = item.titleRes), - modifier = modifier.padding(end = 20.dp), - style = TangemTypography.subtitle1, - color = colorResource(id = R.color.text_primary_1), - ) + Column(modifier = modifier.padding(end = 20.dp)) { + Text( + text = stringResource(id = item.titleRes), + modifier = modifier, + style = TangemTypography.subtitle1, + color = colorResource(id = R.color.text_primary_1), + ) + if (item == SettingsElement.AppCurrency) { + Text( + text = appCurrency, + modifier = modifier, + style = TangemTypography.body2, + color = colorResource(id = R.color.text_secondary), + ) + } + } } } @@ -177,6 +195,7 @@ fun Preview() { elements = SettingsElement.values().toList(), tangemLinks = TangemSocialAccounts.accountsEn, tangemVersion = "Tangem 2.14.12 (343)", + appCurrency = "Dollar", onItemsClick = {}, onSocialNetworkClick = {}, ), onBackPressed = {}, diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt index ffb57970b6..68c8dc4eb0 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt @@ -6,6 +6,7 @@ data class DetailsScreenState( val elements: List, val tangemLinks: List, val tangemVersion: String, + val appCurrency: String, val onItemsClick: (SettingsElement) -> Unit, val onSocialNetworkClick: (String) -> Unit, ) { @@ -20,6 +21,7 @@ enum class SettingsElement( Chat(R.drawable.ic_chat, R.string.details_ask_a_question), SendFeedback(R.drawable.ic_comment, R.string.details_row_title_send_feedback), CardSettings(R.drawable.ic_card_settings, R.string.card_settings_title), + AppCurrency(R.drawable.ic_currency, R.string.details_row_title_currency), AppSettings(R.drawable.ic_settings, R.string.app_settings_title), LinkMoreCards(R.drawable.ic_more_cards, R.string.details_row_title_create_backup), TermsOfService(R.drawable.ic_text, R.string.disclaimer_title), diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt index ecb6a30a0b..c732d4350e 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt @@ -11,11 +11,11 @@ import com.tangem.tap.features.details.redux.DetailsAction import com.tangem.tap.features.details.redux.DetailsState import com.tangem.tap.features.home.LocaleRegionProvider import com.tangem.tap.features.home.RUSSIA_COUNTRY_CODE +import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.wallet.BuildConfig import org.rekotlin.Store class DetailsViewModel(private val store: Store) { - fun updateState(state: DetailsState): DetailsScreenState { val settings = SettingsElement.values().mapNotNull { when (it) { @@ -29,6 +29,7 @@ class DetailsViewModel(private val store: Store) { if (state.privacyPolicyUrl != null) it else null } SettingsElement.AppSettings -> null // TODO: until we implement settings from this screen + SettingsElement.AppCurrency -> if (state.scanResponse?.card?.isMultiwalletAllowed != true) it else null else -> it } } @@ -37,6 +38,7 @@ class DetailsViewModel(private val store: Store) { settings, tangemLinks = getSocialLinks(), tangemVersion = getTangemAppVersion(), + appCurrency = state.appCurrency.name, onItemsClick = { handleClickingSettingsItem(it) }, onSocialNetworkClick = { handleSocialNetworkClick(it) }, ) @@ -60,6 +62,9 @@ class DetailsViewModel(private val store: Store) { SettingsElement.CardSettings -> { store.dispatch(NavigationAction.NavigateTo(AppScreen.CardSettings)) } + SettingsElement.AppCurrency -> { + store.dispatch(WalletAction.AppCurrencyAction.ChooseAppCurrency) + } SettingsElement.AppSettings -> { store.dispatch(NavigationAction.NavigateTo(AppScreen.AppSettings)) //TODO: To be available later } diff --git a/app/src/main/res/drawable/ic_currency.xml b/app/src/main/res/drawable/ic_currency.xml new file mode 100644 index 0000000000..7508a16997 --- /dev/null +++ b/app/src/main/res/drawable/ic_currency.xml @@ -0,0 +1,10 @@ + + +