From 95ca2b1249023e5cdb98b9f324c04ddfc5d86816 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 28 Dec 2022 12:09:33 +0300 Subject: [PATCH 1/9] Updated on 2026-08-14 --- .../details/ui/details/DetailsScreenState.kt | 2 +- .../details/ui/details/DetailsViewModel.kt | 6 +- .../com/tangem/core/ui/components/Cards.kt | 17 ++---- .../appbar/AppBarWithAdditionalButtons.kt | 14 ++--- .../components/appbar/AppBarWithBackButton.kt | 13 ++-- .../components/atoms/BottomSheetIndicator.kt | 61 ------------------- .../referral/presentation/build.gradle.kts | 1 + .../feature/referral/ReferralFragment.kt | 3 +- .../ui/AgreementBottomSheetContent.kt | 10 ++- .../feature/referral/ui/AgreementText.kt | 16 ++--- .../referral/ui/NonParticipateBottomBlock.kt | 6 +- .../referral/ui/ParticipateBottomBlock.kt | 19 +++--- .../feature/referral/ui/ReferralScreen.kt | 49 +++++++-------- 13 files changed, 64 insertions(+), 153 deletions(-) delete mode 100644 core/ui/src/main/java/com/tangem/core/ui/components/atoms/BottomSheetIndicator.kt 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 e55525ae1d..065dc0dfc8 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 @@ -23,7 +23,7 @@ enum class SettingsElement( WalletConnect(R.drawable.ic_walletconnect, R.string.wallet_connect_title), Chat(R.drawable.ic_chat, R.string.details_chat), SendFeedback(R.drawable.ic_comment, R.string.details_row_title_send_feedback), - // ReferralProgram(R.drawable.ic_add_friends, R.string.details_referral_title), + ReferralProgram(R.drawable.ic_add_friends, R.string.details_referral_title), 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), 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 319524eccd..af845bb449 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 @@ -95,9 +95,9 @@ class DetailsViewModel(private val store: Store) { SettingsElement.PrivacyPolicy -> { // TODO: To be available later } - // SettingsElement.ReferralProgram -> { - // store.dispatch(NavigationAction.NavigateTo(AppScreen.ReferralProgram)) - // } + SettingsElement.ReferralProgram -> { + store.dispatch(NavigationAction.NavigateTo(AppScreen.ReferralProgram)) + } } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt index 90d5ee1ce4..0ece569d8d 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt @@ -6,18 +6,13 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.MaterialTheme import androidx.compose.material.Surface import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.tooling.preview.Preview -import com.tangem.core.ui.R import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TextColorType -import com.tangem.core.ui.res.textColor @Preview(widthDp = 328, heightDp = 48, showBackground = true) @Composable @@ -48,7 +43,7 @@ fun Preview_SimpleInfoCard_InDarkTheme() { fun SmallInfoCard(startText: String, endText: String) { Surface( shape = RoundedCornerShape(TangemTheme.dimens.radius12), - color = MaterialTheme.colors.secondary, + color = TangemTheme.colors.background.secondary, elevation = TangemTheme.dimens.elevation2, ) { Row( @@ -60,19 +55,19 @@ fun SmallInfoCard(startText: String, endText: String) { vertical = TangemTheme.dimens.spacing12, ), horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically + verticalAlignment = Alignment.CenterVertically, ) { Text( text = startText, - color = MaterialTheme.colors.textColor(type = TextColorType.TERTIARY), + color = TangemTheme.colors.text.tertiary, maxLines = 1, - style = MaterialTheme.typography.subtitle2 + style = TangemTheme.typography.subtitle2, ) Text( text = endText, - color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY1), + color = TangemTheme.colors.text.primary1, maxLines = 1, - style = MaterialTheme.typography.body2 + style = TangemTheme.typography.body2, ) } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithAdditionalButtons.kt b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithAdditionalButtons.kt index 6416a8343f..c4a74e3fb9 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithAdditionalButtons.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithAdditionalButtons.kt @@ -7,21 +7,15 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.Icon import androidx.compose.material.IconButton -import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.R import com.tangem.core.ui.components.appbar.models.AdditionalButton -import com.tangem.core.ui.res.IconColorType import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TextColorType -import com.tangem.core.ui.res.iconColor -import com.tangem.core.ui.res.textColor /** * App bar with title and two additional buttons @@ -50,7 +44,7 @@ fun AppBarWithAdditionalButtons( painter = painterResource(id = startButton.iconRes), contentDescription = null, modifier = Modifier.size(TangemTheme.dimens.size24), - tint = MaterialTheme.colors.iconColor(type = IconColorType.PRIMARY1), + tint = TangemTheme.colors.icon.primary1, ) } } @@ -58,9 +52,9 @@ fun AppBarWithAdditionalButtons( Text( text = text, modifier = Modifier.align(Alignment.Center), - color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY1), + color = TangemTheme.colors.text.primary1, maxLines = 1, - style = MaterialTheme.typography.subtitle1, + style = TangemTheme.typography.subtitle1, ) if (endButton != null) { @@ -69,7 +63,7 @@ fun AppBarWithAdditionalButtons( painter = painterResource(id = endButton.iconRes), contentDescription = null, modifier = Modifier.size(TangemTheme.dimens.size24), - tint = MaterialTheme.colors.iconColor(type = IconColorType.PRIMARY1), + tint = TangemTheme.colors.icon.primary1, ) } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithBackButton.kt b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithBackButton.kt index 3f4c5efa9e..376c242719 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithBackButton.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithBackButton.kt @@ -1,6 +1,5 @@ package com.tangem.core.ui.components.appbar -import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -8,7 +7,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.Icon -import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -29,10 +27,9 @@ import com.tangem.core.ui.res.TangemTheme * >Figma component */ @Composable -fun AppBarWithBackButton(text: String? = null, onBackClick: () -> Unit) { +fun AppBarWithBackButton(text: String? = null, onBackClick: () -> Unit, modifier: Modifier = Modifier) { Row( - modifier = Modifier - .background(MaterialTheme.colors.primary) + modifier = modifier .fillMaxWidth() .padding(all = dimensionResource(R.dimen.spacing16)), horizontalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.spacing16)), @@ -44,14 +41,14 @@ fun AppBarWithBackButton(text: String? = null, onBackClick: () -> Unit) { modifier = Modifier .size(size = dimensionResource(R.dimen.size24)) .clickable { onBackClick() }, - tint = MaterialTheme.colors.onPrimary, + tint = TangemTheme.colors.icon.primary1, ) if (!text.isNullOrBlank()) { Text( text = text, - color = MaterialTheme.colors.onPrimary, + color = TangemTheme.colors.text.primary1, maxLines = 1, - style = MaterialTheme.typography.subtitle1, + style = TangemTheme.typography.subtitle1, ) } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/atoms/BottomSheetIndicator.kt b/core/ui/src/main/java/com/tangem/core/ui/components/atoms/BottomSheetIndicator.kt deleted file mode 100644 index 907e68d0a2..0000000000 --- a/core/ui/src/main/java/com/tangem/core/ui/components/atoms/BottomSheetIndicator.kt +++ /dev/null @@ -1,61 +0,0 @@ -package com.tangem.core.ui.components.atoms - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.dimensionResource -import androidx.compose.ui.tooling.preview.Preview -import com.tangem.core.ui.R -import com.tangem.core.ui.res.IconColorType -import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.iconColor - -/** - * Bottom sheet indicator - * - * @see - * Figma Component - */ -@Deprecated(message = "Use Hand component instead") -@Composable -fun BottomSheetIndicator() { - Box( - modifier = Modifier - .fillMaxWidth() - .height(TangemTheme.dimens.size20), - contentAlignment = Alignment.Center, - ) { - Box( - modifier = Modifier - .width(TangemTheme.dimens.size32) - .height(TangemTheme.dimens.size4) - .background( - color = MaterialTheme.colors.iconColor(type = IconColorType.INACTIVE), - shape = RoundedCornerShape(TangemTheme.dimens.radius2), - ), - ) - } -} - -@Preview(heightDp = 20, showBackground = true) -@Composable -fun Preview_BottomSheetIndicator_InLightTheme() { - TangemTheme(isDark = false) { - BottomSheetIndicator() - } -} - -@Preview(heightDp = 20, showBackground = true) -@Composable -fun Preview_BottomSheetIndicator_InDarkTheme() { - TangemTheme(isDark = true) { - BottomSheetIndicator() - } -} \ No newline at end of file diff --git a/features/referral/presentation/build.gradle.kts b/features/referral/presentation/build.gradle.kts index a94eecb86b..124a76eb5e 100644 --- a/features/referral/presentation/build.gradle.kts +++ b/features/referral/presentation/build.gradle.kts @@ -56,6 +56,7 @@ dependencies { implementation(AndroidX.appCompat) implementation(AndroidX.fragmentKtx) implementation(AndroidX.lifecycleViewModelKtx) + implementation(Library.materialComponent) /** Compose */ implementation(Compose.foundation) 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 6af2cc4e25..a378ae77c4 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 @@ -1,7 +1,6 @@ package com.tangem.feature.referral import android.os.Bundle -import android.transition.TransitionInflater import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -9,6 +8,7 @@ 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.feature.referral.presentation.R import com.tangem.feature.referral.router.ReferralRouter import com.tangem.feature.referral.ui.ReferralScreen @@ -31,6 +31,7 @@ class ReferralFragment : Fragment() { activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, true) } viewModel.setRouter(ReferralRouter(fragmentManager = WeakReference(parentFragmentManager))) return ComposeView(inflater.context).apply { + isTransitionGroup = true setContent { ReferralScreen(stateHolder = viewModel.uiState) } diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt index 5f15d77781..cb652db965 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt @@ -9,17 +9,15 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration -import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import com.tangem.core.ui.components.appbar.AppBarWithAdditionalButtons -import com.tangem.core.ui.components.atoms.BottomSheetIndicator +import com.tangem.core.ui.components.atoms.Hand import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.referral.presentation.R @@ -32,11 +30,11 @@ import com.tangem.feature.referral.presentation.R internal fun AgreementBottomSheetContent(url: String) { Column( modifier = Modifier - .background(color = MaterialTheme.colors.secondary) + .background(color = TangemTheme.colors.background.secondary) .fillMaxWidth() .height(LocalConfiguration.current.screenHeightDp.dp - TangemTheme.dimens.spacing16), ) { - BottomSheetIndicator() + Hand() Column(modifier = Modifier.verticalScroll(rememberScrollState())) { AppBarWithAdditionalButtons(text = stringResource(id = R.string.details_referral_title)) AgreementHtmlView(url = url) @@ -47,7 +45,7 @@ internal fun AgreementBottomSheetContent(url: String) { @Composable private fun AgreementHtmlView(url: String) { AndroidView( - modifier = Modifier.background(MaterialTheme.colors.secondary), + modifier = Modifier.background(TangemTheme.colors.background.secondary), factory = { WebView(it).apply { layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementText.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementText.kt index cb77fb06d7..57cba8a1dd 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementText.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementText.kt @@ -6,10 +6,8 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.ClickableText -import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.SpanStyle @@ -18,8 +16,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.withStyle import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TextColorType -import com.tangem.core.ui.res.textColor import com.tangem.feature.referral.presentation.R @Composable @@ -30,7 +26,7 @@ internal fun AgreementText(@StringRes firstPartResId: Int, onClicked: () -> Unit modifier = Modifier .fillMaxWidth() .padding(horizontal = TangemTheme.dimens.spacing54), - style = MaterialTheme.typography.caption.copy(textAlign = TextAlign.Center), + style = TangemTheme.typography.caption.copy(textAlign = TextAlign.Center), maxLines = 2, onClick = { val clickableSpanStyle = requireNotNull(agreementText.spanStyles.getOrNull(1)) @@ -44,13 +40,13 @@ internal fun AgreementText(@StringRes firstPartResId: Int, onClicked: () -> Unit @Composable private fun annotatedAgreementString(firstPart: String): AnnotatedString { return buildAnnotatedString { - withStyle(SpanStyle(color = MaterialTheme.colors.textColor(type = TextColorType.TERTIARY))) { + withStyle(SpanStyle(color = TangemTheme.colors.text.tertiary)) { append("$firstPart ") } - withStyle(SpanStyle(color = MaterialTheme.colors.textColor(type = TextColorType.ACCENT))) { + withStyle(SpanStyle(color = TangemTheme.colors.text.accent)) { append(stringResource(id = R.string.common_terms_and_conditions)) } - withStyle(SpanStyle(color = MaterialTheme.colors.textColor(type = TextColorType.TERTIARY))) { + withStyle(SpanStyle(color = TangemTheme.colors.text.tertiary)) { append(" ${stringResource(id = R.string.referral_tos_suffix)}") } } @@ -60,7 +56,7 @@ private fun annotatedAgreementString(firstPart: String): AnnotatedString { @Composable fun Preview_AgreementText_InLightTheme() { TangemTheme(isDark = false) { - Box(modifier = Modifier.background(MaterialTheme.colors.primary)) { + Box(modifier = Modifier.background(TangemTheme.colors.background.primary)) { AgreementText(firstPartResId = R.string.referral_tos_not_enroled_prefix, onClicked = {}) } } @@ -70,7 +66,7 @@ fun Preview_AgreementText_InLightTheme() { @Composable fun Preview_AgreementText_InDarkTheme() { TangemTheme(isDark = true) { - Box(modifier = Modifier.background(MaterialTheme.colors.primary)) { + Box(modifier = Modifier.background(TangemTheme.colors.background.primary)) { AgreementText(firstPartResId = R.string.referral_tos_not_enroled_prefix, onClicked = {}) } } diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/NonParticipateBottomBlock.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/NonParticipateBottomBlock.kt index 29e86058e8..5fcbfc52ed 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/NonParticipateBottomBlock.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/NonParticipateBottomBlock.kt @@ -3,10 +3,8 @@ package com.tangem.feature.referral.ui import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding -import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.tangem.core.ui.components.PrimaryEndIconButton @@ -33,7 +31,7 @@ internal fun NonParticipateBottomBlock(onAgreementClicked: () -> Unit, onPartici @Composable fun Preview_NonParticipateBottomBlock_InLightTheme() { TangemTheme(isDark = false) { - Column(Modifier.background(MaterialTheme.colors.primary)) { + Column(Modifier.background(TangemTheme.colors.background.primary)) { NonParticipateBottomBlock(onAgreementClicked = {}, onParticipateClicked = {}) } } @@ -43,7 +41,7 @@ fun Preview_NonParticipateBottomBlock_InLightTheme() { @Composable fun Preview_NonParticipateBottomBlock_InDarkTheme() { TangemTheme(isDark = true) { - Column(Modifier.background(MaterialTheme.colors.primary)) { + Column(Modifier.background(TangemTheme.colors.background.primary)) { NonParticipateBottomBlock(onAgreementClicked = {}, onParticipateClicked = {}) } } diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ParticipateBottomBlock.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ParticipateBottomBlock.kt index 0027b80634..33e376ad8b 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ParticipateBottomBlock.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ParticipateBottomBlock.kt @@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -28,8 +27,6 @@ import androidx.core.content.ContextCompat.startActivity import com.tangem.core.ui.components.PrimaryStartIconButton import com.tangem.core.ui.components.SmallInfoCard import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TextColorType -import com.tangem.core.ui.res.textColor import com.tangem.feature.referral.presentation.R @OptIn(ExperimentalComposeUiApi::class) @@ -55,7 +52,7 @@ internal fun ParticipateBottomBlock( endText = pluralStringResource( id = R.plurals.referral_wallets_purchased_count, count = purchasedWalletCount, - purchasedWalletCount + purchasedWalletCount, ), ) PersonalCodeCard(code = code) @@ -73,7 +70,7 @@ private fun PersonalCodeCard(code: String) { shape = RoundedCornerShape(TangemTheme.dimens.radius12), ) .background( - color = MaterialTheme.colors.secondary, + color = TangemTheme.colors.background.secondary, shape = RoundedCornerShape(TangemTheme.dimens.radius12), ) .fillMaxWidth() @@ -83,15 +80,15 @@ private fun PersonalCodeCard(code: String) { ) { Text( text = stringResource(id = R.string.referral_promo_code_title), - color = MaterialTheme.colors.textColor(type = TextColorType.TERTIARY), + color = TangemTheme.colors.text.tertiary, maxLines = 1, - style = MaterialTheme.typography.subtitle2, + style = TangemTheme.typography.subtitle2, ) Text( text = code, - color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY1), + color = TangemTheme.colors.text.primary1, maxLines = 1, - style = MaterialTheme.typography.h2, + style = TangemTheme.typography.h2, ) } } @@ -143,7 +140,7 @@ private fun Context.shareText(text: String) { @Composable fun Preview_ParticipateBottomBlock_InLightTheme() { TangemTheme(isDark = false) { - Column(Modifier.background(MaterialTheme.colors.primary)) { + Column(Modifier.background(TangemTheme.colors.background.primary)) { ParticipateBottomBlock( purchasedWalletCount = 3, code = "x4JdK", @@ -159,7 +156,7 @@ fun Preview_ParticipateBottomBlock_InLightTheme() { @Composable fun Preview_ParticipateBottomBlock_InDarkTheme() { TangemTheme(isDark = true) { - Column(Modifier.background(MaterialTheme.colors.primary)) { + Column(Modifier.background(TangemTheme.colors.background.primary)) { ParticipateBottomBlock( purchasedWalletCount = 3, code = "x4JdK", 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 39d5296a12..92713b0fb2 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 @@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box 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 @@ -21,7 +22,6 @@ import androidx.compose.material.BottomSheetState import androidx.compose.material.BottomSheetValue import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.Icon -import androidx.compose.material.MaterialTheme import androidx.compose.material.Snackbar import androidx.compose.material.SnackbarDuration import androidx.compose.material.SnackbarHost @@ -56,15 +56,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.tangem.core.ui.components.VerticalSpacer import com.tangem.core.ui.components.appbar.AppBarWithBackButton -import com.tangem.core.ui.res.ButtonColorType -import com.tangem.core.ui.res.IconColorType import com.tangem.core.ui.res.TangemColorPalette -import com.tangem.core.ui.res.TangemColorPalette.Black import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TextColorType -import com.tangem.core.ui.res.buttonColor -import com.tangem.core.ui.res.iconColor -import com.tangem.core.ui.res.textColor import com.tangem.feature.referral.models.ReferralStateHolder import com.tangem.feature.referral.models.ReferralStateHolder.ErrorSnackbar import com.tangem.feature.referral.models.ReferralStateHolder.ReferralInfoContentState @@ -131,14 +124,15 @@ private fun ReferralContent(stateHolder: ReferralStateHolder, onAgreementClicked CompositionLocalProvider(LocalOverscrollConfiguration provides null) { LazyColumn( modifier = Modifier - .background(color = MaterialTheme.colors.primary) - .fillMaxWidth(), + .background(color = TangemTheme.colors.background.secondary) + .fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, ) { stickyHeader { AppBarWithBackButton( text = stringResource(R.string.details_referral_title), onBackClick = stateHolder.headerState.onBackClicked, + modifier = Modifier.background(color = TangemTheme.colors.background.secondary), ) } item { Header() } @@ -172,10 +166,10 @@ private fun Header() { Text( text = stringResource(id = R.string.referral_title), modifier = Modifier.padding(horizontal = dimensionResource(R.dimen.spacing50)), - color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY1), + color = TangemTheme.colors.text.primary1, textAlign = TextAlign.Center, maxLines = 2, - style = MaterialTheme.typography.h2, + style = TangemTheme.typography.h2, ) VerticalSpacer(spaceResId = R.dimen.spacing16) } @@ -262,7 +256,7 @@ private fun Condition(@DrawableRes iconResId: Int, infoBlock: @Composable () -> Box( modifier = Modifier .background( - color = MaterialTheme.colors.buttonColor(type = ButtonColorType.SECONDARY), + color = TangemTheme.colors.button.secondary, shape = RoundedCornerShape(TangemTheme.dimens.radius16), ) .size(TangemTheme.dimens.size56), @@ -272,7 +266,7 @@ private fun Condition(@DrawableRes iconResId: Int, infoBlock: @Composable () -> painter = painterResource(id = iconResId), contentDescription = null, modifier = Modifier.size(TangemTheme.dimens.size28), - tint = MaterialTheme.colors.iconColor(type = IconColorType.PRIMARY1), + tint = TangemTheme.colors.icon.primary1, ) } infoBlock() @@ -285,7 +279,7 @@ private fun InfoForYou(award: String, networkName: String, address: String? = nu Text( text = buildAnnotatedString { append(stringResource(id = R.string.referral_point_currencies_description_prefix)) - withStyle(SpanStyle(color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY1))) { + withStyle(SpanStyle(color = TangemTheme.colors.text.primary1)) { append(" $award ") } append( @@ -296,8 +290,8 @@ private fun InfoForYou(award: String, networkName: String, address: String? = nu ), ) }, - color = MaterialTheme.colors.textColor(type = TextColorType.TERTIARY), - style = MaterialTheme.typography.body2, + color = TangemTheme.colors.text.tertiary, + style = TangemTheme.typography.body2, ) } } @@ -317,8 +311,8 @@ private fun InfoForYourFriend(discount: String) { append(" ") append(stringResource(id = R.string.referral_point_discount_description_suffix)) }, - color = MaterialTheme.colors.textColor(type = TextColorType.TERTIARY), - style = MaterialTheme.typography.body2, + color = TangemTheme.colors.text.tertiary, + style = TangemTheme.typography.body2, ) } } @@ -328,8 +322,8 @@ private fun ConditionInfo(title: String, subtitleContent: @Composable () -> Unit Column(verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing2)) { Text( text = title, - color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY1), - style = MaterialTheme.typography.subtitle1, + color = TangemTheme.colors.text.primary1, + style = TangemTheme.typography.subtitle1, ) subtitleContent() } @@ -350,6 +344,7 @@ private fun ShimmerInfo() { .width(TangemTheme.dimens.size102) .height(TangemTheme.dimens.size16) .background(TangemColorPalette.White), + // .background(Color(0xFFF8F8F8)), ) Box( modifier = Modifier @@ -377,9 +372,9 @@ private fun ErrorSnackbarHost(errorSnackbar: ErrorSnackbar?) { modifier = Modifier.fillMaxWidth(), actionOnNewLine = true, shape = RoundedCornerShape(size = TangemTheme.dimens.radius8), - backgroundColor = Black, - contentColor = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY2), - actionColor = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY2), + backgroundColor = TangemColorPalette.Black, + contentColor = TangemTheme.colors.text.primary2, + actionColor = TangemTheme.colors.text.primary2, elevation = TangemTheme.dimens.elevation3, ) }, @@ -430,7 +425,7 @@ private fun CopySnackbarHost(isCopyButtonPressed: MutableState) { Box( modifier = Modifier .onSizeChanged { snackbarSize = it.width } - .background(Black, RoundedCornerShape(size = TangemTheme.dimens.radius8)) + .background(TangemColorPalette.Black, RoundedCornerShape(size = TangemTheme.dimens.radius8)) .shadow( TangemTheme.dimens.elevation3, RoundedCornerShape(size = TangemTheme.dimens.radius8), @@ -442,8 +437,8 @@ private fun CopySnackbarHost(isCopyButtonPressed: MutableState) { ) { Text( text = it.message, - color = MaterialTheme.colors.textColor(type = TextColorType.PRIMARY2), - style = MaterialTheme.typography.body2, + color = TangemTheme.colors.text.primary2, + style = TangemTheme.typography.body2, ) } }, From 80bfc4444a3a3d48a0cf4fadad566fb0f9b852ec Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 28 Dec 2022 12:22:13 +0300 Subject: [PATCH 2/9] Updated on 2026-08-14 --- core/res/src/main/res/values/strings_plurals.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/res/src/main/res/values/strings_plurals.xml b/core/res/src/main/res/values/strings_plurals.xml index 72449e9325..f7c61fa277 100644 --- a/core/res/src/main/res/values/strings_plurals.xml +++ b/core/res/src/main/res/values/strings_plurals.xml @@ -16,5 +16,6 @@ %d wallets %d wallet + %d wallets From f7b0479994a260b0f5a2fa41bf444eb1151ad97b Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 28 Dec 2022 12:37:32 +0300 Subject: [PATCH 3/9] Updated on 2026-08-14 --- .../tap/features/details/ui/details/DetailsViewModel.kt | 1 + .../tangem/feature/referral/viewmodels/ReferralViewModel.kt | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) 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 af845bb449..2cb657c083 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 @@ -39,6 +39,7 @@ class DetailsViewModel(private val store: Store) { SettingsElement.AppSettings -> if (state.isBiometricsAvailable) it else null SettingsElement.AppCurrency -> if (state.scanResponse?.card?.isMultiwalletAllowed != true) it else null SettingsElement.TermsOfUse -> if (state.scanResponse?.card?.isStart2Coin == true) it else null + SettingsElement.ReferralProgram -> if (state.scanResponse?.card?.isMultiwalletAllowed == true) it else null else -> it } } diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/viewmodels/ReferralViewModel.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/viewmodels/ReferralViewModel.kt index 21bd4b1057..ded54643ff 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/viewmodels/ReferralViewModel.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/viewmodels/ReferralViewModel.kt @@ -107,9 +107,9 @@ internal class ReferralViewModel @Inject constructor( private fun ReferralData.getDiscountValue(): String { val discountSymbol = when (discountType) { DiscountType.PERCENTAGE -> "%" - DiscountType.VALUE -> error("Value doesn't support") + DiscountType.VALUE -> this.getToken().symbol } - return "$discount $discountSymbol" + return "$discount$discountSymbol" } private fun ReferralData.getToken() = requireNotNull(tokens.firstOrNull()) { "Token list is empty" } From e86de005bff62789f0b77973ac97227304016d9d Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 28 Dec 2022 12:46:24 +0300 Subject: [PATCH 4/9] Updated on 2026-08-14 --- .../com/tangem/feature/referral/converters/ReferralConverter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt b/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt index 7e468c0500..af7910fee0 100644 --- a/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt +++ b/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt @@ -19,7 +19,7 @@ class ReferralConverter @Inject constructor() : Converter Date: Wed, 28 Dec 2022 15:37:05 +0300 Subject: [PATCH 5/9] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/MainActivity.kt | 1 + app/src/main/java/com/tangem/tap/TapApplication.kt | 3 ++- .../java/com/tangem/tap/proxy/AppStateHolder.kt | 4 ++++ .../com/tangem/tap/proxy/DerivationManagerImpl.kt | 13 +++++++++++-- .../java/com/tangem/datasource/di/NetworkModule.kt | 2 +- 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index 5ef7c985a6..da2ecd172f 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -84,6 +84,7 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac context = applicationContext, tangemSdkManager = tangemSdkManager, ) + appStateHolder.userWalletsListManager = userWalletsListManager userWalletsListManagerSafe = userWalletsListManager lockUserWalletsTimer = LockUserWalletsTimer(owner = this) diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 0d483b43ee..50ded416e6 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -128,7 +128,6 @@ class TapApplication : Application(), ImageLoaderFactory { middleware = AppState.getMiddleware(), state = AppState(), ) - appStateHolder.mainStore = store if (BuildConfig.DEBUG) { Timber.plant(Timber.DebugTree()) @@ -155,7 +154,9 @@ class TapApplication : Application(), ImageLoaderFactory { context = this, tangemTechService = store.state.domainNetworks.tangemTechService, ) + appStateHolder.mainStore = store appStateHolder.userTokensRepository = userTokensRepository + appStateHolder.walletStoresManager = walletStoresManager } //todo refactor: move to datasource and provide via DI diff --git a/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt b/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt index 11cfdee61f..cfe9b9cb17 100644 --- a/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt +++ b/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt @@ -5,6 +5,8 @@ import com.tangem.domain.common.ScanResponse import com.tangem.tap.common.redux.AppState import com.tangem.tap.domain.TangemSdkManager import com.tangem.tap.domain.tokens.UserTokensRepository +import com.tangem.tap.domain.userWalletList.UserWalletsListManager +import com.tangem.tap.domain.walletStores.WalletStoresManager import com.tangem.tap.features.wallet.redux.WalletState import org.rekotlin.Store @@ -19,6 +21,8 @@ class AppStateHolder { var userTokensRepository: UserTokensRepository? = null var mainStore: Store? = null var tangemSdkManager: TangemSdkManager? = null + var walletStoresManager: WalletStoresManager? = null + var userWalletsListManager: UserWalletsListManager? = null fun getActualCard(): CardDTO? { return scanResponse?.card diff --git a/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt index 7be322fc1e..265b0aa182 100644 --- a/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt @@ -89,6 +89,8 @@ class DerivationManagerImpl( } scope.launch { + val selectedWallet = appStateHolder.userWalletsListManager?.selectedUserWalletSync + val result = appStateHolder.tangemSdkManager?.derivePublicKeys( scanResponse.card.cardId, derivations, @@ -108,6 +110,14 @@ class DerivationManagerImpl( val updatedScanResponse = scanResponse.copy( derivedKeys = updatedDerivedKeys, ) + if (selectedWallet != null) { + val userWallet = selectedWallet.copy( + scanResponse = updatedScanResponse, + ) + + appStateHolder.userWalletsListManager?.save(userWallet, canOverride = true) + appStateHolder.walletStoresManager?.fetch(userWallet, true) + } appStateHolder.mainStore?.dispatchOnMain(GlobalAction.SaveScanResponse(updatedScanResponse)) delay(DELAY_SDK_DIALOG_CLOSE) onSuccess(updatedScanResponse) @@ -115,8 +125,7 @@ class DerivationManagerImpl( is CompletionResult.Failure -> { appStateHolder.mainStore?.dispatchDebugErrorNotification( TapError.CustomError( - "Error adding " + - "tokens", + "Error derivation", ), ) } diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt index d662a98721..522c6dd904 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt @@ -60,7 +60,7 @@ class NetworkModule { .build(), ), ) - .baseUrl(DEV_TANGEM_TECH_BASE_URL) + .baseUrl(PROD_TANGEM_TECH_BASE_URL) .client(okHttpClient) .build() .create(ReferralApi::class.java) From 999504520c3afb1f9db7a7f72e4ad7a53fdf1fe9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 28 Dec 2022 19:20:45 +0300 Subject: [PATCH 6/9] Updated on 2026-08-14 --- .../feature/referral/ui/ReferralScreen.kt | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) 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 92713b0fb2..361157353b 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 @@ -7,6 +7,7 @@ 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.fillMaxSize @@ -300,14 +301,16 @@ private fun InfoForYou(award: String, networkName: String, address: String? = nu private fun InfoForYourFriend(discount: String) { ConditionInfo(title = stringResource(id = R.string.referral_point_discount_title)) { Text( - text = buildString { + text = buildAnnotatedString { append(stringResource(id = R.string.referral_point_discount_description_prefix)) - append( - String.format( - stringResource(id = R.string.referral_point_discount_description_value), - " $discount", - ), - ) + withStyle(SpanStyle(color = TangemTheme.colors.text.primary1)) { + append( + String.format( + stringResource(id = R.string.referral_point_discount_description_value), + " $discount", + ), + ) + } append(" ") append(stringResource(id = R.string.referral_point_discount_description_suffix)) }, @@ -358,14 +361,14 @@ private fun ShimmerInfo() { // TODO() Replace component with component from ds @Composable -private fun ErrorSnackbarHost(errorSnackbar: ErrorSnackbar?) { +private fun BoxScope.ErrorSnackbarHost(errorSnackbar: ErrorSnackbar?) { if (errorSnackbar != null) { val snackbarHostState by remember { mutableStateOf(SnackbarHostState()) } val coroutineScope = rememberCoroutineScope() SnackbarHost( hostState = snackbarHostState, - modifier = Modifier.padding(top = TangemTheme.dimens.spacing56), + modifier = Modifier.align(Alignment.BottomCenter), snackbar = { Snackbar( snackbarData = it, @@ -407,7 +410,7 @@ private fun ErrorSnackbarHost(errorSnackbar: ErrorSnackbar?) { // TODO() Replace component with component from ds @Composable -private fun CopySnackbarHost(isCopyButtonPressed: MutableState) { +private fun BoxScope.CopySnackbarHost(isCopyButtonPressed: MutableState) { if (isCopyButtonPressed.value) { val snackbarHostState by remember { mutableStateOf(SnackbarHostState()) } val coroutineScope = rememberCoroutineScope() @@ -419,7 +422,8 @@ private fun CopySnackbarHost(isCopyButtonPressed: MutableState) { SnackbarHost( hostState = snackbarHostState, modifier = Modifier - .padding(top = TangemTheme.dimens.spacing56, start = (width - snackbarWidth).div(2)) + .align(Alignment.BottomCenter) + .padding(start = (width - snackbarWidth).div(2), bottom = dimensionResource(R.dimen.spacing12)) .fillMaxWidth(), snackbar = { Box( From c407e854fcd830723c52b20bc6169e54eed10ae7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 30 Dec 2022 10:31:35 +0300 Subject: [PATCH 7/9] Updated on 2026-08-14 --- .../tangem/datasource/api/referral/models/ReferralResponse.kt | 2 -- .../com/tangem/feature/referral/converters/ReferralConverter.kt | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/referral/models/ReferralResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/referral/models/ReferralResponse.kt index 3066ab45a7..f58c6570f6 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/referral/models/ReferralResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/referral/models/ReferralResponse.kt @@ -1,8 +1,6 @@ package com.tangem.datasource.api.referral.models import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass -import org.joda.time.DateTime /** * Main response class for referral API diff --git a/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt b/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt index af7910fee0..00925bfd13 100644 --- a/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt +++ b/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt @@ -36,7 +36,7 @@ class ReferralConverter @Inject constructor() : Converter Date: Fri, 30 Dec 2022 12:26:50 +0300 Subject: [PATCH 8/9] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/domain/extensions/Card.kt | 6 ++++++ .../tap/features/details/ui/details/DetailsViewModel.kt | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt b/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt index fd46ad2fde..486a9f6b89 100644 --- a/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt +++ b/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt @@ -31,6 +31,12 @@ val CardDTO.isMultiwalletAllowed: Boolean val CardDTO.isHdWalletAllowedByApp: Boolean get() = settings.isHDWalletAllowed && !isSaltPay +val CardDTO.isTangemWallet: Boolean + get() = settings.isBackupAllowed + && settings.isHDWalletAllowed + && firmwareVersion >= FirmwareVersion.MultiWalletAvailable + && !isSaltPay + fun CardDTO.hasSignedHashes(): Boolean { return wallets.any { (it.totalSignedHashes ?: 0) > 0 } } 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 2cb657c083..88abe746fc 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,6 +11,7 @@ import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.extensions.isMultiwalletAllowed +import com.tangem.tap.domain.extensions.isTangemWallet import com.tangem.tap.features.details.redux.DetailsAction import com.tangem.tap.features.details.redux.DetailsState import com.tangem.tap.features.disclaimer.redux.DisclaimerAction @@ -39,7 +40,7 @@ class DetailsViewModel(private val store: Store) { SettingsElement.AppSettings -> if (state.isBiometricsAvailable) it else null SettingsElement.AppCurrency -> if (state.scanResponse?.card?.isMultiwalletAllowed != true) it else null SettingsElement.TermsOfUse -> if (state.scanResponse?.card?.isStart2Coin == true) it else null - SettingsElement.ReferralProgram -> if (state.scanResponse?.card?.isMultiwalletAllowed == true) it else null + SettingsElement.ReferralProgram -> if (state.scanResponse?.card?.isTangemWallet == true) it else null else -> it } } From 8f9eb793d7f493406a63c93a2204affe664040f0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 9 Jan 2023 18:25:18 +0300 Subject: [PATCH 9/9] Updated on 2026-08-14 --- .../tap/features/details/ui/details/DetailsScreenState.kt | 2 +- .../tap/features/details/ui/details/DetailsViewModel.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) 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 065dc0dfc8..e55525ae1d 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 @@ -23,7 +23,7 @@ enum class SettingsElement( WalletConnect(R.drawable.ic_walletconnect, R.string.wallet_connect_title), Chat(R.drawable.ic_chat, R.string.details_chat), SendFeedback(R.drawable.ic_comment, R.string.details_row_title_send_feedback), - ReferralProgram(R.drawable.ic_add_friends, R.string.details_referral_title), + // ReferralProgram(R.drawable.ic_add_friends, R.string.details_referral_title), 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), 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 88abe746fc..f6b932c755 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 @@ -40,7 +40,7 @@ class DetailsViewModel(private val store: Store) { SettingsElement.AppSettings -> if (state.isBiometricsAvailable) it else null SettingsElement.AppCurrency -> if (state.scanResponse?.card?.isMultiwalletAllowed != true) it else null SettingsElement.TermsOfUse -> if (state.scanResponse?.card?.isStart2Coin == true) it else null - SettingsElement.ReferralProgram -> if (state.scanResponse?.card?.isTangemWallet == true) it else null + // SettingsElement.ReferralProgram -> if (state.scanResponse?.card?.isTangemWallet == true) it else null else -> it } } @@ -97,9 +97,9 @@ class DetailsViewModel(private val store: Store) { SettingsElement.PrivacyPolicy -> { // TODO: To be available later } - SettingsElement.ReferralProgram -> { - store.dispatch(NavigationAction.NavigateTo(AppScreen.ReferralProgram)) - } + // SettingsElement.ReferralProgram -> { + // store.dispatch(NavigationAction.NavigateTo(AppScreen.ReferralProgram)) + // } } }