Updated on 2026-08-14

This commit is contained in:
Tangem 2022-08-08 10:56:26 +04:00
parent 06481327fd
commit f92aca5c9c
4 changed files with 60 additions and 24 deletions

View file

@ -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 = {},

View file

@ -6,6 +6,7 @@ data class DetailsScreenState(
val elements: List<SettingsElement>,
val tangemLinks: List<TangemLink>,
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),

View file

@ -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<AppState>) {
fun updateState(state: DetailsState): DetailsScreenState {
val settings = SettingsElement.values().mapNotNull {
when (it) {
@ -29,6 +29,7 @@ class DetailsViewModel(private val store: Store<AppState>) {
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<AppState>) {
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<AppState>) {
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
}

View file

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:autoMirrored="true"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#656565"
android:pathData="M7,15H9C9,16.08 10.37,17 12,17C13.63,17 15,16.08 15,15C15,13.9 13.96,13.5 11.76,12.97C9.64,12.44 7,11.78 7,9C7,7.21 8.47,5.69 10.5,5.18V3H13.5V5.18C15.53,5.69 17,7.21 17,9H15C15,7.92 13.63,7 12,7C10.37,7 9,7.92 9,9C9,10.1 10.04,10.5 12.24,11.03C14.36,11.56 17,12.22 17,15C17,16.79 15.53,18.31 13.5,18.82V21H10.5V18.82C8.47,18.31 7,16.79 7,15Z" />
</vector>